Fourteen visual challenge fixtures and the first visuals for reference exhibits A through D, all executing without a line of subject-specific renderer code — which is the claim slice 4g exists to test. A subject the engine needs special handling for is a subject the format cannot express. The standalone CLI validator no longer disagrees with the production one. It had been falling through to ERR_UNSUPPORTED_TARGET for every `visuals.*` binding target, so legal exhibits — including the committed minimal-visual fixture — failed the CLI while passing the runtime. The four section 8.1 visual target families are now recognized in both, and a test runs the CLI validator across every exhibit and challenge fixture so the two paths cannot drift apart again. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01ShxxFqFmCUDQnQvFNm4TKy
111 lines
2.3 KiB
Plaintext
111 lines
2.3 KiB
Plaintext
{
|
|
"xzbt": "0.1",
|
|
"meta": {
|
|
"id": "mechanical-abstraction",
|
|
"name": "Rotating mechanical abstraction",
|
|
"version": "1.0.0",
|
|
"description": "PRD 130 challenge 5; generic visual primitives only."
|
|
},
|
|
"runtime": {
|
|
"seed": 4204
|
|
},
|
|
"visuals": {
|
|
"scene": {
|
|
"coordinateSpace": "virtual",
|
|
"width": 960,
|
|
"height": 540,
|
|
"background": "#101d25"
|
|
},
|
|
"systems": {
|
|
"wheel": {
|
|
"type": "graphic",
|
|
"content": {
|
|
"outer": {
|
|
"type": "ring",
|
|
"position": {
|
|
"x": 480,
|
|
"y": 270
|
|
},
|
|
"radius": 160,
|
|
"innerRadius": 158,
|
|
"style": {
|
|
"fill": "#72c4bd"
|
|
}
|
|
},
|
|
"inner": {
|
|
"type": "ring",
|
|
"position": {
|
|
"x": 480,
|
|
"y": 270
|
|
},
|
|
"radius": 125,
|
|
"innerRadius": 123,
|
|
"style": {
|
|
"fill": "#e1bd7c"
|
|
}
|
|
},
|
|
"hub": {
|
|
"type": "ring",
|
|
"position": {
|
|
"x": 480,
|
|
"y": 270
|
|
},
|
|
"radius": 38,
|
|
"innerRadius": 36,
|
|
"style": {
|
|
"fill": "#e1bd7c"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"spokes": {
|
|
"type": "repeater",
|
|
"count": 12,
|
|
"distribution": {
|
|
"type": "point",
|
|
"position": {
|
|
"x": 480,
|
|
"y": 270
|
|
}
|
|
},
|
|
"repeat": {
|
|
"type": "group",
|
|
"transform": {
|
|
"rotation": {
|
|
"op": "multiply",
|
|
"args": [
|
|
{
|
|
"ref": "repeat.fraction"
|
|
},
|
|
330
|
|
]
|
|
}
|
|
},
|
|
"behaviors": [
|
|
{
|
|
"type": "rotate",
|
|
"speed": 12
|
|
}
|
|
],
|
|
"children": {
|
|
"bar": {
|
|
"type": "rectangle",
|
|
"position": {
|
|
"x": 40,
|
|
"y": -4
|
|
},
|
|
"size": {
|
|
"width": 85,
|
|
"height": 8
|
|
},
|
|
"style": {
|
|
"fill": "#e1bd7c"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|