Skip to content

Commit d4cae11

Browse files
author
DavidQ
committed
Consolidate object vector schema geometry style opacity and object tag SSoT - PR_26133_032-object-vector-schema-geometry-and-style-ssot
1 parent 14bc2bb commit d4cae11

15 files changed

Lines changed: 778 additions & 413 deletions
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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.

docs/dev/reports/playwright_v8_coverage_report.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# PR_26133_031 Playwright V8 Coverage Report
1+
# PR_26133_032 Playwright V8 Coverage Report
22

3-
Task: PR_26133_031-shape-schema-field-reduction
3+
Task: PR_26133_032-object-vector-schema-geometry-and-style-ssot
44
Date: 2026-05-14
55

66
## Result
@@ -26,9 +26,10 @@ PASS - Coverage reporting was generated during `npm run test:workspace-v2`.
2626
## Changed Runtime JS Coverage
2727

2828
```text
29-
(93%) tools/object-vector-studio-v2/js/ToolStarterApp.js - executed lines 4243/4243; executed functions 450/483
30-
(95%) tools/object-vector-studio-v2/js/services/ObjectVectorStudioV2SchemaService.js - executed lines 434/434; executed functions 56/59
31-
(98%) src/engine/rendering/ObjectVectorRuntimeAssetService.js - executed lines 949/949; executed functions 111/113
29+
(83%) tools/object-vector-studio-v2/js/bootstrap.js - executed lines 109/109; executed functions 5/6
30+
(93%) tools/object-vector-studio-v2/js/ToolStarterApp.js - executed lines 4345/4345; executed functions 451/483
31+
(95%) tools/object-vector-studio-v2/js/services/ObjectVectorStudioV2SchemaService.js - executed lines 417/417; executed functions 53/56
32+
(98%) src/engine/rendering/ObjectVectorRuntimeAssetService.js - executed lines 915/915; executed functions 107/109
3233
```
3334

3435
## Guardrail
@@ -39,4 +40,4 @@ PASS - Coverage reporting was generated during `npm run test:workspace-v2`.
3940

4041
## PR-Specific Note
4142

42-
The Workspace V2 run exercised the Object Vector Studio V2 editor, schema service, and runtime object-vector asset service using the reduced shape contract. Coverage remains advisory only.
43+
The Workspace V2 run exercised the Object Vector Studio V2 editor, schema service, runtime object-vector asset service, Asteroids runtime object-vector loading, and browser UI paths for fill/stroke opacity plus point2d geometry. Coverage remains advisory only.
Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# PR_26133_031 Workspace V2 Playwright Results
1+
# PR_26133_032 Workspace V2 Playwright Results
22

3-
Task: PR_26133_031-shape-schema-field-reduction
3+
Task: PR_26133_032-object-vector-schema-geometry-and-style-ssot
44
Date: 2026-05-14
55

66
## Result
@@ -10,20 +10,21 @@ PASS - `npm run test:workspace-v2` completed successfully.
1010
- Command: `npm run test:workspace-v2`
1111
- Playwright target: `tests/playwright/tools/WorkspaceManagerV2.spec.mjs --project=playwright --workers=1 --reporter=list`
1212
- Final result: 49 passed, 0 failed.
13-
- Follow-up targeted rerun before the full suite: 3 passed for the Object Vector Studio V2 authoring, animation, and Workspace tile flows.
13+
- Focused rerun before the full suite: 1 passed for the Object Vector Studio V2 schema-only palette gate after opacity-control test updates.
1414

1515
## PR-Specific Coverage
1616

17-
- Object Vector Studio V2 loads Asteroids object geometry without shape-level `shapeKey`, `label`, or duplicate semantic `type` fields.
18-
- Shape list rendering and selection use local sorted shape indexes through `data-shape-index` / `data-object-tile-shape-index`.
19-
- Shape frame overrides use `shapeIndex` and remain schema-valid after object/shape editing flows.
20-
- Tool-based behavior remains covered for polygon, line, ellipse, rectangle, arc, text, circle, and triangle-compatible polygon geometry.
17+
- Fill and stroke opacity controls apply to selected Object Vector shapes and persist as `fillOpacity` / `strokeOpacity`.
18+
- Object Vector Studio V2 loads Asteroids object tags from `objects[*].tags` with no `assetLibrary` payload.
19+
- Polygon editing enforces the new minimum of 4 points; default created polygons use 5 points.
20+
- Triangle shapes use fixed 3-point triangle geometry and keep Add/Delete Point hidden.
21+
- Line geometry loads/edits through `point1` / `point2`.
22+
- Transform origin loads/edits through `origin: { x, y }`.
23+
- Runtime object-vector rendering uses object ids as SSoT and validates the reduced Object Vector payload.
2124
- Runtime console checks: covered Workspace V2 flows asserted no page errors or console errors where the suite monitors them.
2225

2326
## Additional Validation
2427

2528
PASS - Custom manifest/schema validation loaded `games/Asteroids/game.manifest.json`, validated the embedded Object Vector Studio V2 payload, and loaded it through `ObjectVectorRuntimeAssetService`.
2629

27-
PASS - `node tests/games/AsteroidsAssetReferenceAdoption.test.mjs`
28-
29-
PASS - `node tests/games/AsteroidsPlatformDemo.test.mjs`
30+
PASS - `node --check` for changed Object Vector JS and the Workspace Manager V2 Playwright spec.

0 commit comments

Comments
 (0)