1. Lesson Content
content/unit1.jsonFrench textbook explanations, mental hooks, examples, and spoken quizzes—decoupled from the player.
2. Audio Manifest
audio-manifest.jsonMaps every English sentence & French phrase to stable clip IDs and canonical WAV files in /audio/.
3. Lesson Player & Adapter
player-audio-adapter.jsLoads manifest → checks IndexedDB → fetches missing WAVs → highlights sentences & preserves pauses.
4. Unit Catalog
catalog.jsonPowers this Course Hub so Unit 2, Unit 3, and beyond reuse the exact same player with zero code duplication.