feat: add immutable level template lifecycle
This commit is contained in:
@@ -317,14 +317,6 @@ The following are computed and must not become duplicate source-of-truth tables:
|
||||
|
||||
`save_level_as_template(level_id)` runs the same clone operation into a new immutable template-version board.
|
||||
|
||||
## Migration direction
|
||||
## Implemented cutover
|
||||
|
||||
The current `widgets`, `widget_relations`, and `playthrough_*` tables are transitional. The cutover should:
|
||||
|
||||
1. Introduce boards, exhibit tables, subtype tables, templates, and typed metadata.
|
||||
2. Convert existing authored widgets to exhibits.
|
||||
3. Materialize each existing playthrough as its own cloned mutable level.
|
||||
4. Move document layout from relation JSON into document exhibit coordinates.
|
||||
5. Convert `contains` relations to folder memberships and generic connections to exhibit connections.
|
||||
6. Update the API to read and write exhibits directly.
|
||||
7. Remove the transitional widget/playthrough tables only after data equivalence checks pass.
|
||||
Migration 006 made this the sole persistence model. Because the POC database contained no canonical or legacy content worth preserving, the cutover intentionally dropped the JSON case store, `widgets`, `widget_relations`, and `playthrough_*` tables without a backfill period. Template save, version selection, instantiation, and reset now use one transactional board-cloning service. The remaining architectural work is the frontend exhibit/widget registry and the planned exhibit families.
|
||||
|
||||
Reference in New Issue
Block a user