Skip to content

Commit 76c0945

Browse files
author
DavidQ
committed
PR 8.6: Manifest entity generalization
- Replaced sampleId with id - Added type field - Enabled support for games and future entities
1 parent f062ca2 commit 76c0945

4 files changed

Lines changed: 92 additions & 30 deletions

File tree

docs/dev/codex_commands.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@ MODEL: GPT-5.3-codex
22
REASONING: medium
33

44
TASK:
5-
- Update workspace.manifest.json:
6-
- Add palette field to each sample that has a palette
7-
- Ensure:
8-
- All palette files are referenced
9-
- No duplicate references
10-
- No orphan palette files
11-
- Do NOT add validation utilities
5+
- Replace sampleId → id in workspace.manifest.json
6+
- Add type field:
7+
- existing entries → type: "sample"
8+
- Ensure uniqueness of id
129
- Do NOT modify runtime
10+
- Do NOT add validators
1311
- Do NOT modify start_of_day

docs/dev/commit_comment.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
PR 8.5: Workspace manifest palette linking
1+
PR 8.6: Manifest entity generalization
22

3-
- Added explicit palette linkage to workspace.manifest
4-
- Enforced single-source-of-truth rule
3+
- Replaced sampleId with id
4+
- Added type field
5+
- Enabled support for games and future entities
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# PR 8.6 — Manifest Entity Generalization
2+
3+
## Purpose
4+
Remove sample-specific naming and generalize manifest structure to support samples, games, and future entity types.
5+
6+
## Change
7+
8+
### Replace
9+
- sampleId
10+
11+
### With
12+
- id
13+
- type
14+
15+
### New Structure
16+
```json
17+
{
18+
"id": "0305",
19+
"type": "sample",
20+
"tool": "vector-map-editor",
21+
"palette": "samples/phase-03/0305/sample.palette.json"
22+
}
23+
```
24+
25+
## Type Values
26+
- sample
27+
- game
28+
- tool (future)
29+
- asset (future)
30+
31+
## Rules
32+
- id must be unique across manifest
33+
- type required
34+
- palette optional but must be explicit if present
35+
- no implicit inference
36+
37+
## Non-Goals
38+
- no runtime logic
39+
- no validators
40+
41+
## Acceptance
42+
- no sampleId remains
43+
- all entries use id + type

workspace.manifest.json

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"version": 1,
55
"samples": [
66
{
7-
"sampleId": "0207",
7+
"id": "0207",
8+
"type": "sample",
89
"phase": "phase-02",
910
"tool": "sprite-editor",
1011
"tools": [
@@ -13,7 +14,8 @@
1314
"palette": "samples/phase-02/0207/sample.palette.json"
1415
},
1516
{
16-
"sampleId": "0213",
17+
"id": "0213",
18+
"type": "sample",
1719
"phase": "phase-02",
1820
"tool": "palette-browser",
1921
"tools": [
@@ -23,7 +25,8 @@
2325
"palette": "samples/phase-02/0213/sample.palette.json"
2426
},
2527
{
26-
"sampleId": "0214",
28+
"id": "0214",
29+
"type": "sample",
2730
"phase": "phase-02",
2831
"tool": "sprite-editor",
2932
"tools": [
@@ -32,7 +35,8 @@
3235
"palette": "samples/phase-02/0214/sample.palette.json"
3336
},
3437
{
35-
"sampleId": "0219",
38+
"id": "0219",
39+
"type": "sample",
3640
"phase": "phase-02",
3741
"tool": "sprite-editor",
3842
"tools": [
@@ -41,7 +45,8 @@
4145
"palette": "samples/phase-02/0219/sample.palette.json"
4246
},
4347
{
44-
"sampleId": "0221",
48+
"id": "0221",
49+
"type": "sample",
4550
"phase": "phase-02",
4651
"tool": "3d-json-payload-normalizer",
4752
"tools": [
@@ -52,7 +57,8 @@
5257
"palette": "samples/phase-02/0221/sample.palette.json"
5358
},
5459
{
55-
"sampleId": "0224",
60+
"id": "0224",
61+
"type": "sample",
5662
"phase": "phase-02",
5763
"tool": "sprite-editor",
5864
"tools": [
@@ -62,7 +68,8 @@
6268
"palette": "samples/phase-02/0224/sample.palette.json"
6369
},
6470
{
65-
"sampleId": "0301",
71+
"id": "0301",
72+
"type": "sample",
6673
"phase": "phase-03",
6774
"tool": "sprite-editor",
6875
"tools": [
@@ -71,7 +78,8 @@
7178
"palette": "samples/phase-03/0301/sample.palette.json"
7279
},
7380
{
74-
"sampleId": "0302",
81+
"id": "0302",
82+
"type": "sample",
7583
"phase": "phase-03",
7684
"tool": "sprite-editor",
7785
"tools": [
@@ -80,7 +88,8 @@
8088
"palette": "samples/phase-03/0302/sample.palette.json"
8189
},
8290
{
83-
"sampleId": "0305",
91+
"id": "0305",
92+
"type": "sample",
8493
"phase": "phase-03",
8594
"tool": "3d-json-payload-normalizer",
8695
"tools": [
@@ -91,7 +100,8 @@
91100
"palette": "samples/phase-03/0305/sample.palette.json"
92101
},
93102
{
94-
"sampleId": "0308",
103+
"id": "0308",
104+
"type": "sample",
95105
"phase": "phase-03",
96106
"tool": "palette-browser",
97107
"tools": [
@@ -100,7 +110,8 @@
100110
"palette": "samples/phase-03/0308/sample.palette.json"
101111
},
102112
{
103-
"sampleId": "0313",
113+
"id": "0313",
114+
"type": "sample",
104115
"phase": "phase-03",
105116
"tool": "palette-browser",
106117
"tools": [
@@ -109,7 +120,8 @@
109120
"palette": "samples/phase-03/0313/sample.palette.json"
110121
},
111122
{
112-
"sampleId": "0901",
123+
"id": "0901",
124+
"type": "sample",
113125
"phase": "phase-09",
114126
"tool": "vector-asset-studio",
115127
"tools": [
@@ -119,7 +131,8 @@
119131
"palette": "samples/phase-09/0901/sample.palette.json"
120132
},
121133
{
122-
"sampleId": "0905",
134+
"id": "0905",
135+
"type": "sample",
123136
"phase": "phase-09",
124137
"tool": "sprite-editor",
125138
"tools": [
@@ -128,7 +141,8 @@
128141
"palette": "samples/phase-09/0905/sample.palette.json"
129142
},
130143
{
131-
"sampleId": "1204",
144+
"id": "1204",
145+
"type": "sample",
132146
"phase": "phase-12",
133147
"tool": "parallax-editor",
134148
"tools": [
@@ -139,7 +153,8 @@
139153
"palette": "samples/phase-12/1204/sample.palette.json"
140154
},
141155
{
142-
"sampleId": "1205",
156+
"id": "1205",
157+
"type": "sample",
143158
"phase": "phase-12",
144159
"tool": "parallax-editor",
145160
"tools": [
@@ -149,7 +164,8 @@
149164
"palette": "samples/phase-12/1205/sample.palette.json"
150165
},
151166
{
152-
"sampleId": "1208",
167+
"id": "1208",
168+
"type": "sample",
153169
"phase": "phase-12",
154170
"tool": "3d-asset-viewer",
155171
"tools": [
@@ -162,7 +178,8 @@
162178
"palette": "samples/phase-12/1208/sample.palette.json"
163179
},
164180
{
165-
"sampleId": "1209",
181+
"id": "1209",
182+
"type": "sample",
166183
"phase": "phase-12",
167184
"tool": "tile-map-editor",
168185
"tools": [
@@ -172,7 +189,8 @@
172189
"palette": "samples/phase-12/1209/sample.palette.json"
173190
},
174191
{
175-
"sampleId": "1210",
192+
"id": "1210",
193+
"type": "sample",
176194
"phase": "phase-12",
177195
"tool": "tile-map-editor",
178196
"tools": [
@@ -181,7 +199,8 @@
181199
"palette": "samples/phase-12/1210/sample.palette.json"
182200
},
183201
{
184-
"sampleId": "1211",
202+
"id": "1211",
203+
"type": "sample",
185204
"phase": "phase-12",
186205
"tool": "tile-map-editor",
187206
"tools": [
@@ -190,7 +209,8 @@
190209
"palette": "samples/phase-12/1211/sample.palette.json"
191210
},
192211
{
193-
"sampleId": "1414",
212+
"id": "1414",
213+
"type": "sample",
194214
"phase": "phase-14",
195215
"tool": "sprite-editor",
196216
"tools": [

0 commit comments

Comments
 (0)