|
| 1 | +# BUILD_PR_VECTOR_SHOWCASE_AND_GEOMETRY_RUNTIME_FINAL |
| 2 | + |
| 3 | +## Purpose |
| 4 | +Deliver the final public-facing vector platform showcase and deterministic vector geometry runtime finalization in one surgical build PR. |
| 5 | + |
| 6 | +## Scope |
| 7 | +In scope: |
| 8 | +- registry-driven showcase surface for the active first-class tools |
| 9 | +- mandatory engine theme framing for the active tools platform |
| 10 | +- explicit deterministic vector geometry runtime policy |
| 11 | +- stable transform, render-order, and precision contract visibility |
| 12 | +- preserved-but-excluded legacy sprite tooling |
| 13 | + |
| 14 | +Out of scope: |
| 15 | +- gameplay feature work |
| 16 | +- engine rewrites |
| 17 | +- duplicate tool navigation lists outside the registry |
| 18 | +- deletion of preserved sprite paths |
| 19 | + |
| 20 | +## Active First-Class Tools |
| 21 | +- `tools/Vector Map Editor/` |
| 22 | +- `tools/Vector Asset Studio/` |
| 23 | +- `tools/Tilemap Studio/` |
| 24 | +- `tools/Parallax Scene Studio/` |
| 25 | + |
| 26 | +## Preserved But Excluded |
| 27 | +- actual preserved legacy path on disk: `tools/SpriteEditor_old_keep/` |
| 28 | +- preserved current sprite workspace on disk: `tools/Sprite Editor/` |
| 29 | +- neither preserved sprite path appears in the active platform showcase or shared navigation |
| 30 | + |
| 31 | +## Modules Created Or Changed |
| 32 | +- `tools/toolRegistry.js` |
| 33 | +- `tools/renderToolsIndex.js` |
| 34 | +- `tools/index.html` |
| 35 | +- `tools/shared/platformShell.css` |
| 36 | +- `tools/shared/vectorGeometryRuntime.js` |
| 37 | +- `tests/tools/VectorGeometryRuntime.test.mjs` |
| 38 | +- `docs/pr/BUILD_PR_VECTOR_SHOWCASE_AND_GEOMETRY_RUNTIME_FINAL.md` |
| 39 | +- `docs/dev/COMMIT_COMMENT.txt` |
| 40 | + |
| 41 | +## Showcase Surface Summary |
| 42 | +- the tools landing surface remains registry-driven through `tools/toolRegistry.js` |
| 43 | +- active showcase cards now render richer public-facing metadata from the registry instead of hardcoded per-page content |
| 44 | +- each first-class tool card now exposes its canonical open action and registry-owned sample/help entry points where available |
| 45 | +- the landing page explicitly calls out the shared engine theme and deterministic geometry runtime proof without duplicating the active tool list outside the registry |
| 46 | + |
| 47 | +## Geometry Runtime Finalization |
| 48 | +- `tools/shared/vectorGeometryRuntime.js` now exports `VECTOR_GEOMETRY_RUNTIME_POLICY` |
| 49 | +- the policy makes the deterministic runtime contract explicit: |
| 50 | + - fixed six-decimal rounding |
| 51 | + - epsilon `0.000001` |
| 52 | + - transform order `scale -> rotate -> translate` |
| 53 | + - render order `layer order -> shape order` |
| 54 | + - collision primitives follow render order |
| 55 | +- prepared runtime assets now carry the shared `runtimePolicy` payload and a deterministic policy report |
| 56 | + |
| 57 | +## Shared Boundaries Preserved |
| 58 | +- `engine/ui/hubCommon.css` remains the engine theme source of truth |
| 59 | +- `tools/shared/platformShell.css` remains the shared tool-shell layer consuming engine theme tokens |
| 60 | +- `tools/toolRegistry.js` remains the single source of truth for active tool visibility and showcase metadata |
| 61 | +- geometry runtime behavior remains shared infrastructure, not tool-specific logic |
| 62 | + |
| 63 | +## Validation Performed |
| 64 | +- `node --check tools/toolRegistry.js` |
| 65 | +- `node --check tools/renderToolsIndex.js` |
| 66 | +- `node --check tools/shared/platformShell.js` |
| 67 | +- `node --check tools/shared/vectorGeometryRuntime.js` |
| 68 | +- `node --check scripts/validate-active-tools-surface.mjs` |
| 69 | +- `node --check tests/tools/VectorGeometryRuntime.test.mjs` |
| 70 | +- `node scripts/validate-active-tools-surface.mjs` |
| 71 | +- `node scripts/run-node-tests.mjs` |
| 72 | + |
| 73 | +## Validation Summary |
| 74 | +- active showcase cards still come from the registry only |
| 75 | +- active landing and navigation still exclude preserved sprite paths |
| 76 | +- no obsolete deprecated sprite-rename references remain in the validated surface |
| 77 | +- active tools still load the engine theme and shared shell |
| 78 | +- repeated vector geometry runtime preparation now asserts deep deterministic equality in tests |
| 79 | +- vector-native template and sample-game flows continue to consume `runtimeKind: "vector-geometry"` assets under the shared runtime contract |
| 80 | + |
| 81 | +## Follow-Up Recommendations |
| 82 | +- keep future showcase-card changes in `tools/toolRegistry.js` and `tools/renderToolsIndex.js` |
| 83 | +- keep future geometry runtime precision changes centralized in `tools/shared/vectorGeometryRuntime.js` |
| 84 | +- avoid adding tool-local geometry policy forks |
0 commit comments