|
| 1 | +# PR_26139_019 Game Manifest Version Preview Normalization Report |
| 2 | + |
| 3 | +## Summary |
| 4 | +- Added current `$schema` declarations and Asset Manager V2 preview registries to older game manifests that only had legacy tool payloads. |
| 5 | +- Preserved existing populated preview paths for Asteroids (`assets/images/preview.png`), Gravity Well (`assets/images/preview.svg`), and Pong (`assets/images/preview1.svg`). |
| 6 | +- Added the missing `games/vector-arcade-sample/assets/images/preview.svg` file so the newly required preview manifest entry resolves on disk. |
| 7 | +- Tightened `game.manifest.schema.json` so game manifests require `tools.asset-manager-v2` and validate that payload against the Asset Manager V2 schema. |
| 8 | +- Extended game manifest validation to check the current game manifest schema and preview file existence for every game manifest. |
| 9 | + |
| 10 | +## Manifest Updates |
| 11 | +- Added `assets.image.preview.preview -> assets/images/preview.svg` to: |
| 12 | + - `AITargetDummy` |
| 13 | + - `Bouncing-ball` |
| 14 | + - `Breakout` |
| 15 | + - `Pacman` |
| 16 | + - `SolarSystem` |
| 17 | + - `SpaceDuel` |
| 18 | + - `SpaceInvaders` |
| 19 | + - `vector-arcade-sample` |
| 20 | +- Left existing preview paths unchanged: |
| 21 | + - `Asteroids -> assets/images/preview.png` |
| 22 | + - `GravityWell -> assets/images/preview.svg` |
| 23 | + - `Pong -> assets/images/preview1.svg` |
| 24 | + |
| 25 | +## Validation |
| 26 | +- PASS: `npm run build:manifest` |
| 27 | +- PASS: `node scripts/validate-json-contracts.mjs --mode=games --details` |
| 28 | + - `game_manifest_schema_validation: total=11 invalid=0` |
| 29 | +- PASS: preview file existence check |
| 30 | + - `OK preview assets exist for 11 games` |
| 31 | +- PASS: `npx playwright test tests/playwright/games/GameIndexPreviewManifestResolution.spec.mjs --project=playwright --workers=1 --reporter=list` |
| 32 | + - `4 passed` |
| 33 | +- PASS: `node --check scripts/validate-json-contracts.mjs` |
| 34 | +- PASS: `node --check tests/playwright/games/GameIndexPreviewManifestResolution.spec.mjs` |
| 35 | +- PASS: `git diff --check` |
| 36 | + |
| 37 | +## Manual Validation |
| 38 | +- Open `/games/index.html` and confirm each game card thumbnail renders from the manifest preview asset. |
| 39 | +- Open `/games/Pong/index.html` and confirm the thumbnail uses `assets/images/preview1.svg`. |
| 40 | +- Confirm no page requests `/games/Pong/assets/images/preview.svg`. |
| 41 | + |
| 42 | +## Notes |
| 43 | +- `games/index.html` and `games/Pong/index.html` remain manifest-driven; no preview path was hardcoded into HTML or runtime. |
| 44 | +- Full samples smoke test was skipped because this PR is limited to game manifest normalization and targeted game preview validation. |
0 commit comments