Skip to content

Commit 7f990ef

Browse files
author
DavidQ
committed
Make game.manifest.json the SSoT for game data and workspace state - PR_26128_007-game-manifest-ssot
1 parent 474f0c6 commit 7f990ef

9 files changed

Lines changed: 789 additions & 411 deletions

File tree

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Playwright Game Manifest SSoT
2+
3+
## Command
4+
`npm run test:workspace-v2`
5+
6+
## Result
7+
PASS: 11 passed
8+
9+
## Targeted Coverage
10+
- Verified Workspace Manager V2 launches from the tools index.
11+
- Verified Active Game starts empty and disabled before repo selection.
12+
- Verified Active Game enables only after successful repo discovery.
13+
- Verified Active Game discovers schema-valid `game.manifest.json` files.
14+
- Verified discovered game manifests validate through `validateGameManifest`.
15+
- Verified Asteroids `game.manifest.json` has no root workspace/document payload and instead owns `game.gameData` plus `game.workspace`.
16+
- Verified `game.workspace` still validates as the runtime workspace context used by existing tool launches.
17+
- Verified invalid manifests are skipped and logged with path plus validation reason.
18+
- Verified repo load failure clears and disables Active Game.
19+
- Verified no default game is auto-selected.
20+
- Verified Workspace Manager V2, Preview Generator V2, Asset Manager V2, Palette Manager V2, and Templates V2 launch paths still work from the derived workspace context.
21+
22+
## Skipped
23+
- Full samples smoke test was skipped as requested. The targeted Workspace Manager V2 Playwright suite covers the schema ownership change, manifest discovery, invalid-manifest logging, and affected launch/session paths.

0 commit comments

Comments
 (0)