Skip to content

Commit 5ea231c

Browse files
author
DavidQ
committed
BUILD_PR_LEVEL_9_1A_ASTEROIDS_MANIFEST_MODEL_REVIEW
- Added corrected review model for Asteroids single-manifest consolidation - Clarified data belongs under owning tool sections - Prevented embedded data in workspace schema - Marked implementation as review-only
1 parent 833c86f commit 5ea231c

5 files changed

Lines changed: 312 additions & 10 deletions
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Level 9.1A Asteroids Manifest Model Review
2+
3+
## Scope
4+
- Review-only documentation update.
5+
- No runtime implementation changes.
6+
- No validator changes.
7+
- No `start_of_day` changes.
8+
- No new manifest elements added to repository runtime files.
9+
10+
## Reviewed Inputs
11+
- `docs/pr/PLAN_PR_LEVEL_9_1A_ASTEROIDS_MANIFEST_MODEL_REVIEW.md`
12+
- `docs/pr/BUILD_PR_LEVEL_9_1A_ASTEROIDS_MANIFEST_MODEL_REVIEW.md`
13+
14+
## Cleaned Model Decision (Review)
15+
1. `games/Asteroids/game.manifest.json` remains the intended game SSoT target.
16+
2. Embedded game content should not be placed into workspace schema ownership areas.
17+
3. Actual JSON content should live under the owning tool section in the game manifest model.
18+
4. Primitive Skin Editor is the owner for HUD/skin color data.
19+
5. Palette Browser is browsing-oriented and should not own HUD/skin payload ownership.
20+
6. Asset Browser remains a file-reference owner for binary/media assets (audio/images/fonts).
21+
7. Legacy lineage/catalog references are migration artifacts and should be removed after full migration parity.
22+
8. Launch metadata is optional when direct routing is already canonical.
23+
24+
## Cleaned Manifest Shape (Review Baseline)
25+
- The cleaned shape defined in `BUILD_PR_LEVEL_9_1A_ASTEROIDS_MANIFEST_MODEL_REVIEW.md` is accepted as the review baseline model for next implementation steps.
26+
- This PR does not apply that shape to runtime files; it records review alignment only.
27+
28+
## Migration Intent (Review-Only)
29+
- JSON files listed in the BUILD doc under "Files Intended To Be Removed After Data Migration" remain migration targets.
30+
- Binary/media files listed under "Keep As Files" remain file-backed references.
31+
32+
## Open Review Items
33+
1. Confirm whether `launch` should remain in the game manifest model.
34+
2. Confirm canonical tool id for preview ownership (`preview-generator-tool` vs existing id).
35+
3. Confirm long-term ownership/disposition of Asteroids classic palette data.
36+
4. Confirm final ownership model for bezel stretch metadata (`bezel.stretch.override.json`).
37+
38+
## Implementation Status
39+
- `status`: review complete
40+
- `implementation`: deferred (intentionally out of scope for 9.1A)
Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
MODEL: GPT-5.3-codex
2+
REASONING: medium
23

34
TASK:
4-
Final validation pass
5+
Do not implement. This is review-only.
56

6-
- Verify all games launch
7-
- Verify manifests complete
8-
- Verify no broken refs
9-
- Remove any last safe unused JSON
10-
- Produce final report
7+
Add the cleaned Asteroids manifest model review docs only.
8+
9+
Do not modify runtime.
10+
Do not add validators.
11+
Do not modify start_of_day.
12+
Do not create embedded workspace schema data.
13+
Do not create new manifest elements beyond this review doc.
1114

1215
OUTPUT:
13-
tmp/BUILD_PR_LEVEL_8_34_FINAL_CLEAN_REPO_BASELINE_delta.zip
16+
tmp/BUILD_PR_LEVEL_9_1A_ASTEROIDS_MANIFEST_MODEL_REVIEW_delta.zip
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
PR 8.33: Legacy catalog parity and removal
1+
BUILD_PR_LEVEL_9_1A_ASTEROIDS_MANIFEST_MODEL_REVIEW
22

3-
- Removed safe legacy catalogs
4-
- Retained required ones
3+
- Added corrected review model for Asteroids single-manifest consolidation
4+
- Clarified data belongs under owning tool sections
5+
- Prevented embedded data in workspace schema
6+
- Marked implementation as review-only
Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,241 @@
1+
# BUILD_PR_LEVEL_9_1A_ASTEROIDS_MANIFEST_MODEL_REVIEW
2+
3+
## Corrected Rules
4+
5+
1. `game.manifest.json` is the game SSoT.
6+
2. The workspace schema must not own embedded game data.
7+
3. Data means actual JSON object content, not a reference to another JSON file.
8+
4. Data belongs inside the owning tool section.
9+
5. Skin/HUD color data belongs to Primitive Skin Editor.
10+
6. Palette Browser launches palette browsing only; it does not own HUD/skin data.
11+
7. Asset Browser may own file references because binary/audio/image/font assets stay as files.
12+
8. Lineage/legacy catalog references should be deleted after migration.
13+
9. Launch data may be omitted if direct launch is already known by file location/router.
14+
15+
## Cleaned Manifest Shape For Review
16+
17+
```jsonc
18+
{
19+
"schema": "html-js-gaming.game-manifest",
20+
"version": 1,
21+
22+
"game": {
23+
"id": "asteroids",
24+
"name": "Asteroids"
25+
},
26+
27+
"tools": [
28+
{
29+
"toolId": "primitive-skin-editor",
30+
"skins": [
31+
{
32+
"id": "skin.asteroids.hud",
33+
"name": "Asteroids HUD",
34+
"source": "games/Asteroids/assets/palettes/hud.json",
35+
"data": {
36+
"//": "Actual HUD/Primitive Skin JSON goes here after conversion. No reference-only JSON."
37+
}
38+
}
39+
]
40+
},
41+
42+
{
43+
"toolId": "preview-generator-tool",
44+
"previews": [
45+
{
46+
"id": "preview.asteroids.main",
47+
"kind": "image",
48+
"path": "/games/Asteroids/assets/images/preview.png"
49+
}
50+
]
51+
},
52+
53+
{
54+
"toolId": "asset-browser",
55+
"assets": {
56+
"audio": [
57+
{
58+
"assetId": "audio.asteroids.fire",
59+
"path": "/games/Asteroids/assets/audio/fire.wav",
60+
"kind": "audio",
61+
"source": "asset-browser"
62+
}
63+
],
64+
"bezel": [
65+
{
66+
"assetId": "image.asteroids.bezel",
67+
"path": "/games/Asteroids/assets/images/bezel.png",
68+
"kind": "image",
69+
"source": "asset-browser",
70+
"uniformEdgeStretchPx": 10
71+
}
72+
],
73+
"images": [],
74+
"fonts": [
75+
{
76+
"assetId": "font.asteroids.vector-battle",
77+
"path": "/games/Asteroids/assets/fonts/vector_battle.ttf",
78+
"kind": "font",
79+
"source": "asset-browser"
80+
}
81+
]
82+
}
83+
},
84+
85+
{
86+
"toolId": "sprite-editor",
87+
"sprites": [
88+
{
89+
"id": "sprite.asteroids.player-ship",
90+
"label": "Player Ship",
91+
"data": {
92+
"//": "Actual sprite JSON extracted from code or old JSON goes here."
93+
}
94+
}
95+
]
96+
},
97+
98+
{
99+
"toolId": "tile-map-editor",
100+
"maps": [
101+
{
102+
"id": "tilemap.asteroids.level-1",
103+
"label": "Level 1",
104+
"data": {
105+
"//": "Actual tile map JSON/data goes here."
106+
}
107+
}
108+
],
109+
"tilesets": [
110+
{
111+
"id": "tileset.asteroids.ui",
112+
"label": "Asteroids UI Tileset",
113+
"data": {
114+
"//": "Actual tileset JSON from assets/tilesets/ui.json goes here."
115+
}
116+
}
117+
]
118+
},
119+
120+
{
121+
"toolId": "parallax-editor",
122+
"parallaxLevels": [
123+
{
124+
"id": "parallax.asteroids.title",
125+
"label": "Title",
126+
"data": {
127+
"//": "Actual parallax JSON from title/overlay files goes here."
128+
}
129+
},
130+
{
131+
"id": "parallax.asteroids.overlay",
132+
"label": "Overlay",
133+
"data": {
134+
"//": "Actual parallax JSON from title/overlay files goes here."
135+
}
136+
}
137+
]
138+
},
139+
140+
{
141+
"toolId": "vector-asset-studio",
142+
"vectors": [
143+
{
144+
"id": "vector.asteroids.ship",
145+
"type": "vector",
146+
"geometry": {
147+
"viewBox": "-24 -24 48 48",
148+
"paths": [
149+
{ "d": "M 0 -18 L 14 16 L 0 8 L -14 16 Z" },
150+
{ "d": "M -6 14 L 0 6 L 6 14" }
151+
]
152+
},
153+
"style": {
154+
"stroke": true,
155+
"fill": false
156+
}
157+
},
158+
159+
{
160+
"id": "vector.asteroids.asteroid-large",
161+
"type": "vector",
162+
"data": {
163+
"//": "Actual JSON from assets/vectors/asteroid-large.json goes here."
164+
}
165+
},
166+
167+
{
168+
"id": "vector.asteroids.asteroid-medium",
169+
"type": "vector",
170+
"data": {
171+
"//": "Actual JSON from assets/vectors/asteroid-medium.json goes here."
172+
}
173+
},
174+
175+
{
176+
"id": "vector.asteroids.asteroid-small",
177+
"type": "vector",
178+
"data": {
179+
"//": "Actual JSON from assets/vectors/asteroid-small.json goes here."
180+
}
181+
},
182+
183+
{
184+
"id": "vector.asteroids.title",
185+
"type": "vector",
186+
"data": {
187+
"//": "Actual JSON from assets/vectors/title.json goes here."
188+
}
189+
},
190+
191+
{
192+
"id": "vector.asteroids.library",
193+
"type": "vector-library",
194+
"data": {
195+
"//": "Actual JSON from assets/vectors/data/library.data.json goes here."
196+
}
197+
}
198+
]
199+
}
200+
]
201+
}
202+
```
203+
204+
## Files Intended To Be Removed After Data Migration
205+
206+
Delete after the actual JSON content is moved into the correct tool section:
207+
208+
```text
209+
games/Asteroids/assets/palettes/asteroids-hud.palette.json
210+
games/Asteroids/assets/parallax/data/overlay.data.json
211+
games/Asteroids/assets/parallax/data/title.data.json
212+
games/Asteroids/assets/parallax/overlay.json
213+
games/Asteroids/assets/parallax/title.json
214+
games/Asteroids/assets/sprites/data/demo.data.json
215+
games/Asteroids/assets/sprites/demo.json
216+
games/Asteroids/assets/tilemaps/data/stage.data.json
217+
games/Asteroids/assets/tilemaps/stage.json
218+
games/Asteroids/assets/tilesets/ui.json
219+
games/Asteroids/assets/tools.manifest.json
220+
games/Asteroids/assets/workspace.asset-catalog.json
221+
games/Asteroids/assets/vectors/asteroid-large.json
222+
games/Asteroids/assets/vectors/asteroid-medium.json
223+
games/Asteroids/assets/vectors/asteroid-small.json
224+
games/Asteroids/assets/vectors/data/library.data.json
225+
games/Asteroids/assets/vectors/title.json
226+
```
227+
228+
## Keep As Files
229+
Binary/media files stay as files and are referenced by Asset Browser:
230+
231+
```text
232+
games/Asteroids/assets/audio/*
233+
games/Asteroids/assets/images/*.png
234+
games/Asteroids/assets/fonts/*
235+
```
236+
237+
## Needs Review
238+
- Whether `launch` belongs in manifest at all.
239+
- Whether `preview-generator-tool` should be called exactly that or use the existing preview tool id.
240+
- Whether `asteroids-classic.palette.json` is still needed, or whether its swatches belong under Primitive Skin Editor / Palette Browser / a game palette tool section.
241+
- Whether `bezel.stretch.override.json` becomes Asset Browser image metadata or a future Layout/Bezel tool section.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# PLAN_PR_LEVEL_9_1A_ASTEROIDS_MANIFEST_MODEL_REVIEW
2+
3+
## Purpose
4+
Correct the Asteroids single-manifest model before implementation.
5+
6+
## Key Correction
7+
Do not embed generic palette/skin/HUD buckets into workspace schema or unrelated schema areas.
8+
9+
Data belongs under the owning tool section inside the game manifest.
10+
11+
## Scope
12+
- Review-only model cleanup.
13+
- No implementation.
14+
- No runtime changes.
15+
- No validators.
16+
- No start_of_day changes.

0 commit comments

Comments
 (0)