
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.

Overview
format_presets should be generated from a spec in the format #182 introduces. Studio, Kolibri and ricecooker read its field names and list order, so its public Python API should not change.
Complexity: Medium
Target branch: main
Context
The Change
- Where a preset's
_READABLE constant and readable_name differ, the spec should hold both, so neither changes.
js/FormatPresets.js should export the constants as its default export and the preset records as a named export.
Acceptance Criteria
AI usage
I made the decisions recorded on #181 and #182; Claude Code applied them to this module against the current code and drafted the issue.
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.
Overview
format_presetsshould be generated from a spec in the format #182 introduces. Studio, Kolibri and ricecooker read its field names and list order, so its public Python API should not change.Complexity: Medium
Target branch: main
Context
VIDEO_HIGH_RES = "high_res_video"), and each preset also has a<NAME>_READABLEconstant used as itschoiceslabel._READABLEconstant that differs from theirreadable_nameinPRESETLIST:video_dependency,audio_dependency,html5_dependency,h5p,qti,slideshow_image.VIDEO_VECTORhas constants but no record and nochoicesentry.Preset.kind: https://github.com/learningequality/ricecooker/blob/d616dc6c3091acde9e1acab62f24fd1473d69712/ricecooker/utils/pipeline/extract_metadata.py#L24The Change
_READABLEconstant andreadable_namediffer, the spec should hold both, so neither changes.js/FormatPresets.jsshould export the constants as its default export and the preset records as a named export.Acceptance Criteria
le_utils/constants/format_presets.pyandjs/FormatPresets.jsare generated fromspec/constants-format_presets.json,presetlookup.jsonis deleted, andmake buildon a clean checkout leaves no diff.format_presets, includingPRESETLISTorder andRENDERABLE_PRESETS_ORDER.AI usage
I made the decisions recorded on #181 and #182; Claude Code applied them to this module against the current code and drafted the issue.