|
| 1 | +# PR_26128_007 Game Manifest SSoT |
| 2 | + |
| 3 | +## Summary |
| 4 | +- Added `tools/schemas/game.manifest.schema.json` as the dedicated schema for `games/**/game.manifest.json`. |
| 5 | +- Reworked the Workspace Manager V2 discovery path to validate discovered `game.manifest.json` files against the dedicated game schema, not `workspace.manifest.schema.json`. |
| 6 | +- Converted the current Workspace Manager V2 game project manifests for Asteroids, Gravity Well, and Pong into the game-manifest SSoT envelope. |
| 7 | +- Preserved existing Workspace Manager V2 launch/session behavior by deriving the runtime workspace context from `game.workspace`. |
| 8 | + |
| 9 | +## SSoT Shape |
| 10 | +- `game.gameData` owns runtime-facing game data. |
| 11 | +- `game.workspace` owns tool/editor/workspace state used to edit and build the game. |
| 12 | +- No separate `games/**/workspace.manifest.json` file is required for Active Game discovery or launch. |
| 13 | +- The root game manifest is `schema: html-js-gaming.game-manifest`; the nested `game.workspace` payload remains the runtime workspace container used by existing Workspace Manager V2 tool launches. |
| 14 | + |
| 15 | +## Discovery Behavior |
| 16 | +- Active Game starts empty and disabled. |
| 17 | +- Repo load clears the current Active Game immediately. |
| 18 | +- Successful repo discovery enables Active Game with schema-valid `game.manifest.json` entries only. |
| 19 | +- Invalid manifests are skipped with visible status log entries that include the manifest path and validation reason. |
| 20 | +- Missing manifests are skipped, not fatal. |
| 21 | +- No default Active Game is auto-selected. |
| 22 | + |
| 23 | +## Scope Notes |
| 24 | +- No sample JSON was modified. |
| 25 | +- No roadmap content was modified. |
| 26 | +- No cross-tool communication was added. |
| 27 | +- Session/toolState behavior was preserved; existing launches still receive the same workspace-shaped session context. |
| 28 | +- Full samples smoke test was skipped because this BUILD explicitly requested targeted Workspace Manager V2 validation and to skip full samples smoke. |
| 29 | + |
| 30 | +## Validation |
| 31 | +- PASS: `node --check tools/workspace-manager-v2/js/services/WorkspaceManagerV2ContextService.js` |
| 32 | +- PASS: `node --check tests/playwright/tools/WorkspaceManagerV2.spec.mjs` |
| 33 | +- PASS: JSON parse for `tools/schemas/game.manifest.schema.json`, `games/Asteroids/game.manifest.json`, `games/GravityWell/game.manifest.json`, and `games/Pong/game.manifest.json` |
| 34 | +- PASS: `npm run test:workspace-v2` - 11 passed |
0 commit comments