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

Overview
licenses should be generated from a spec in the format #182 introduces. It has no known wrong values, so its public Python API should not change.
Complexity: Low
Target branch: main
Context
LICENSELIST ids are ints 1–9, while the constants hold license names (CC_BY = "CC BY"); licenselookup.json keys are the ids as strings.
- Every
License.description is ""; licenselookup.json has no description field.
The Change
js/Licenses.js should export the constants as its default export and the license 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
licensesshould be generated from a spec in the format #182 introduces. It has no known wrong values, so its public Python API should not change.Complexity: Low
Target branch: main
Context
LICENSELISTids are ints 1–9, while the constants hold license names (CC_BY = "CC BY");licenselookup.jsonkeys are the ids as strings.License.descriptionis"";licenselookup.jsonhas nodescriptionfield.The Change
js/Licenses.jsshould export the constants as its default export and the license records as a named export.Acceptance Criteria
le_utils/constants/licenses.pyandjs/Licenses.jsare generated fromspec/constants-licenses.json,licenselookup.jsonis deleted, andmake buildon a clean checkout leaves no diff.licenses.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.