Usage tracking
Every content record, field, item, and asset has a derived usage list. The usage graph is computed from project content and may be cached. It is a derived view, not an independently editable source of truth.Deletion and detachment
- Referenced entities cannot be silently deleted. The author must replace references, detach usages, or explicitly leave them broken.
- Detaching text or structured content creates an intentional literal snapshot in the lesson or exercise.
- Detaching presentation from a record does not duplicate binary media. Media stays referenced by asset ID unless the author imports a distinct file.
Validation
A validation pass reports missing records, fields, repeated items, and assets whenever a project opens. The bundledjapanese-starter fixture is checked in CI with
pnpm check:example.
What is settled vs deferred
Both the shape of the model and the on-disk format are settled. The format is
version 1, published with JSON Schemas: see Project layout and
File formats.
- schema-template format and custom-field constraints;
- whether record changes need revision history beyond git;
- query-based runtime exercise generation;
- packaging rules for the separate learner application.