|
| 1 | +# PR_26139_021 Manifest Tooling Normalization Follow-Up |
| 2 | + |
| 3 | +## Summary |
| 4 | +- Tightened `game.manifest.schema.json` so `tools` only accepts current manifest-owned tool payloads. |
| 5 | +- Removed stale manifest-owned tool payloads from `vector-arcade-sample` and converted its vector geometry to `object-vector-studio-v2.objects[]`. |
| 6 | +- Removed optional Workspace Manager launch entries from manifests that do not have an active `palette-manager-v2` workspace context. |
| 7 | +- Removed remaining active `asset-browser` manifest fallback reads from preview/chrome asset resolution. |
| 8 | + |
| 9 | +## Manifest Decisions |
| 10 | +- Direct-only manifests now keep only `launch.directPath`: AI Target Dummy, Bouncing Ball, Breakout, Pacman, Solar System, Space Duel, Space Invaders, and Vector Arcade Sample. |
| 11 | +- Workspace-capable manifests keep current Workspace Manager V2 paths: Asteroids, Gravity Well, and Pong. |
| 12 | +- `vector-arcade-sample` now uses: |
| 13 | + - `asset-manager-v2` for the preview asset. |
| 14 | + - `object-vector-studio-v2` for five converted objects: UI HUD, large obstacle, small obstacle, player, and UI title. |
| 15 | +- Removed from `vector-arcade-sample` because the payloads were stale/non-current manifest ownership: |
| 16 | + - `sprite-editor` |
| 17 | + - `tile-map-editor` |
| 18 | + - `parallax-editor` |
| 19 | + - `svg-asset-studio` |
| 20 | + - `preview-generator-tool` |
| 21 | + |
| 22 | +## Schema And Runtime Cleanup |
| 23 | +- `tools/schemas/game.manifest.schema.json` now rejects unknown manifest tool keys instead of accepting arbitrary objects. |
| 24 | +- `palette-manager-v2` is now a first-class game manifest schema property. |
| 25 | +- Workspace Manager V2 now preloads/registers `palette-manager-v2.schema.json` when browser-validating game manifests. |
| 26 | +- `src/engine/runtime/gameImageConvention.js` resolves chrome/preview image assets from Asset Manager V2 only. |
| 27 | +- `games/shared/workspaceGameAssetCatalog.js` resolves manifest asset catalog entries from Asset Manager V2 only. |
| 28 | +- `games/shared/workspaceGameLaunchGuard.js` points to `workspace-manager-v2` and no longer emits the old `mount=game` query. |
| 29 | + |
| 30 | +## Validation |
| 31 | +- PASS: `npm run build:manifest` |
| 32 | +- PASS: `node scripts/validate-json-contracts.mjs --mode=games --details` |
| 33 | + - `game_manifest_schema_validation: total=11 invalid=0` |
| 34 | +- PASS: manifest normalization audit |
| 35 | + - every manifest has `asset-manager-v2` |
| 36 | + - every manifest has exactly one preview role asset and the preview file exists |
| 37 | + - no stale manifest tool keys remain |
| 38 | + - no old Workspace Manager manifest launch paths remain |
| 39 | +- PASS: `rg -n '"(asset-browser|primitive-skin-editor|palette-browser|vector-map-editor|preview-generator-tool|sprite-editor|tile-map-editor|parallax-editor|svg-asset-studio)"' games -g 'game.manifest.json'` |
| 40 | + - no remaining game manifest matches |
| 41 | +- PASS: `npx playwright test tests/playwright/tools/WorkspaceManagerV2.spec.mjs --project=playwright --workers=1 --reporter=list --grep "discovers Active Game options from selected repo manifests"` |
| 42 | +- PASS: `npx playwright test tests/playwright/tools/WorkspaceManagerV2.spec.mjs --project=playwright --workers=1 --reporter=list --grep "uses header lifecycle controls and launches tools from fixed Workspace Manager V2 tiles"` |
| 43 | +- PASS: `npx playwright test tests/playwright/games/GameIndexPreviewManifestResolution.spec.mjs --project=playwright --workers=1 --reporter=list` |
| 44 | +- PASS: `git diff --check` |
| 45 | + |
| 46 | +## Full Samples Smoke Test |
| 47 | +- Skipped. This PR is scoped to manifest/tooling normalization plus targeted preview and Workspace Manager validation; it does not broadly change sample loading. |
0 commit comments