# `:data:resources` Owns the app's Compose Multiplatform resources (`Res`) and exposes them to other modules through the `ResourceReader` interface, so consumer modules stay free of any platform/resource dependency. ## Un-versioned content Some content is **not** checked into git (it is large and/or licensed course material). It must be present locally under `src/commonMain/composeResources/files/` for the app to work, but is excluded via `.gitignore`: | Content | Files | Git-ignored by | |------------------|-----------------------|-------------------------------| | Audio recordings | `Chom_bev_*.m4a` | `*.m4a` | | Subtitles | `Chom_bev_*_st_*.lrc` | `*.lrc` | | Record catalogue | `records.json` | explicit path in `.gitignore` | A fresh checkout will not contain these files; obtain them from another team member / the asset store and drop them into `src/commonMain/composeResources/files/`. ## Records data (`records.json`) The list of lessons shown in the app is loaded at runtime from `src/commonMain/composeResources/files/records.json` (read via `ResourceReader`, then parsed with `kotlinx.serialization` in `:data:records`). It is a JSON array of objects: | Field | Type | Notes | |-----------------------|----------|----------------------------------------------| | `emoji` | string | Shown next to the record to illustrate it. | | `transcription` | string | Breton title. | | `translation` | string? | French translation (optional). | | `audio` | string | Resource path, e.g. `files/Chom_bev_01.m4a`. | | `subtitle` | string | Breton subtitle path (`.lrc`). | | `translationSubtitle` | string? | Translation subtitle path (optional). | The record `id`/`index` are assigned from each entry's 1-based position in the array. **Getting started on a fresh checkout:** copy the versioned template and fill it in (or replace it with the real catalogue): ```bash cp data/resources/src/commonMain/composeResources/files/records.example.json \ data/resources/src/commonMain/composeResources/files/records.json ``` `records.example.json` is versioned and documents the schema. `records.json` is git-ignored. Adding/reordering a record is a pure data edit in `records.json` — no code change needed. Make sure the referenced `.m4a`/`.lrc` files exist in the same `files/` directory.