|
| 1 | +PR 11.122 - Tool Schema Boundary |
| 2 | + |
| 3 | +PASS |
| 4 | + |
| 5 | +Purpose |
| 6 | +- Correct the boundary so child tool schemas do not validate parent game/workspace/sample documents. |
| 7 | +- Palette Browser is now schema-bound to direct palette JSON only. |
| 8 | + |
| 9 | +Files searched / reviewed |
| 10 | +- docs/pr/BUILD_PR_LEVEL_11_122_TOOL_SCHEMA_BOUNDARY_AND_PAYLOAD_ROUTING.md |
| 11 | +- tools/schemas/tools/*.schema.json |
| 12 | +- tools/schemas/tools/palette-browser.schema.json |
| 13 | +- tools/schemas/workspace.manifest.schema.json |
| 14 | +- tools/shared/platformShell.js |
| 15 | +- tools/Workspace Manager/main.js |
| 16 | +- tools/Palette Browser/main.js |
| 17 | +- samples/phase-19/1902/sample.1902.workspace-all-tools.json |
| 18 | +- samples/metadata/samples.index.metadata.json |
| 19 | + |
| 20 | +Tool schemas reviewed |
| 21 | +- 3d-asset-viewer.schema.json |
| 22 | +- 3d-camera-path-editor.schema.json |
| 23 | +- 3d-json-payload.schema.json |
| 24 | +- asset-browser.schema.json |
| 25 | +- asset-pipeline.schema.json |
| 26 | +- palette-browser.schema.json |
| 27 | +- parallax-editor.schema.json |
| 28 | +- performance-profiler.schema.json |
| 29 | +- physics-sandbox.schema.json |
| 30 | +- replay-visualizer.schema.json |
| 31 | +- skin-editor.schema.json |
| 32 | +- sprite-editor.schema.json |
| 33 | +- state-inspector.schema.json |
| 34 | +- svg-asset-studio.schema.json |
| 35 | +- tile-map-editor.schema.json |
| 36 | +- tile-model-converter.schema.json |
| 37 | +- vector-map-editor.schema.json |
| 38 | + |
| 39 | +Schemas changed |
| 40 | +- tools/schemas/tools/palette-browser.schema.json |
| 41 | + |
| 42 | +Schema decision |
| 43 | +- Removed Palette Browser wrapper acceptance from the child tool schema. |
| 44 | +- Removed oneOf wrapper mode. |
| 45 | +- Removed $defs.toolPayload. |
| 46 | +- Removed top-level tool. |
| 47 | +- Removed wrapper payload. |
| 48 | +- Kept direct palette fields only: $schema, schema, version, id, name, source, sourceId, locked, swatches. |
| 49 | + |
| 50 | +Other tool schema review result |
| 51 | +- The remaining tool schemas were reviewed for parent game/workspace/sample document acceptance. |
| 52 | +- No other tool schema was changed in this PR. |
| 53 | +- Existing tool schemas that use tool/version/payload are the current direct tool JSON contracts for those tools; they do not accept game/workspace/sample parent documents. |
| 54 | +- Broadly converting every tool contract from tool/version/payload into inner payload-only shape was intentionally not done because PR 11.122 specifically identified Palette Browser's dual wrapper/direct acceptance as the boundary violation. |
| 55 | + |
| 56 | +Files changed |
| 57 | +- samples/phase-19/1902/sample.1902.workspace-all-tools.json |
| 58 | +- scripts/validate-json-contracts.mjs |
| 59 | +- tests/tools/ToolSchemaStrictModeValidation.test.mjs |
| 60 | +- tools/Palette Browser/main.js |
| 61 | +- tools/Workspace Manager/main.js |
| 62 | +- tools/schemas/tools/palette-browser.schema.json |
| 63 | +- tools/shared/platformShell.js |
| 64 | + |
| 65 | +Blockers |
| 66 | +- None. |
0 commit comments