|
| 1 | +# PR_26133_032 Object Vector Schema Geometry Style SSoT Report |
| 2 | + |
| 3 | +Task: PR_26133_032-object-vector-schema-geometry-and-style-ssot |
| 4 | +Date: 2026-05-14 |
| 5 | + |
| 6 | +## Result |
| 7 | + |
| 8 | +PASS - Object Vector Studio V2 schema, editor, Asteroids manifest data, and runtime object-vector rendering now share the reduced object-vector contract. |
| 9 | + |
| 10 | +## Schema Contract |
| 11 | + |
| 12 | +- Removed `assetLibrary` from the Object Vector Studio V2 payload contract. |
| 13 | +- Moved durable tags onto `objects[*].tags`. |
| 14 | +- Kept `objects[*].id` as the runtime/gameplay single source of truth. |
| 15 | +- Added independent `style.fillOpacity` and `style.strokeOpacity`. |
| 16 | +- Removed legacy `style.opacity`. |
| 17 | +- Changed transform origin from `originX` / `originY` to `origin: { x, y }`. |
| 18 | +- Changed line geometry from split `x1` / `y1` / `x2` / `y2` to `point1` / `point2`. |
| 19 | +- Added `triangleGeometry` with exactly 3 points. |
| 20 | +- Updated polygon geometry to require at least 4 points and default to 5 points. |
| 21 | + |
| 22 | +## Manifest/Data Migration |
| 23 | + |
| 24 | +- `games/Asteroids/game.manifest.json` no longer carries Object Vector `assetLibrary`. |
| 25 | +- Asteroids object tags now live on object entries. |
| 26 | +- Object shapes use `fillOpacity` / `strokeOpacity`. |
| 27 | +- Line shapes use `point1` / `point2`. |
| 28 | +- Shape transforms and frame override transforms use `origin`. |
| 29 | +- Triangle-tool shapes validate against exact 3-point triangle geometry. |
| 30 | + |
| 31 | +## Editor/Runtime Updates |
| 32 | + |
| 33 | +- Palette controls expose independent Fill Op and Stroke Op number fields. |
| 34 | +- Palette color application preserves existing fill/stroke color behavior and writes the selected opacity field only when changed. |
| 35 | +- Object Geometry reads/writes nested point2d line fields. |
| 36 | +- Polygon Add/Delete Point preserves the new 4-point minimum. |
| 37 | +- Triangle Add/Delete Point remains hidden and exact point count is enforced. |
| 38 | +- Runtime canvas/SVG rendering applies fill and stroke alpha independently. |
| 39 | +- Runtime validation enforces `maxItems` so triangle geometry cannot exceed 3 points. |
| 40 | + |
| 41 | +## Validation |
| 42 | + |
| 43 | +- PASS - `npm run test:workspace-v2` (49 passed, 0 failed). |
| 44 | +- PASS - `games/Asteroids/game.manifest.json` validated against `tools/schemas/game.manifest.schema.json`. |
| 45 | +- PASS - embedded Asteroids Object Vector payload validated through `ObjectVectorStudioV2SchemaService`. |
| 46 | +- PASS - changed JS syntax checks for Object Vector editor/runtime files and Workspace Manager V2 Playwright spec. |
| 47 | + |
| 48 | +## Manual Verification Notes |
| 49 | + |
| 50 | +Targeted Object Vector Studio V2 browser coverage in the Workspace V2 suite verified fill/stroke opacity editing, palette color sync, polygon point add/delete constraints, line point2d layout, transform origin edits, no `assetLibrary` requirement, Asteroids runtime rendering, and no monitored console/page errors. |
0 commit comments