next lab / composition experiment
relationships before runtime
same model. explicit nodes. choose disabled, suggest, or apply. authored placement stays in charge.
image dominant
the recovered surface
the image leads. its caption stays attached to the edge.
{
"valid": true,
"issues": [],
"seed": "next-image-01",
"nodes": [
{
"id": "artifact",
"content": "Frame",
"role": "focal-point",
"capabilities": [
"bounded-variation",
"anchor-source"
],
"relationKinds": [
"anchor",
"frame"
],
"variation": 0.0748
},
{
"id": "caption",
"content": "Text",
"role": "counterweight",
"capabilities": [
"anchor-target"
],
"relationKinds": [
"anchor"
],
"variation": 0
},
{
"id": "edge-mark",
"content": "Glyph",
"role": "frame",
"capabilities": [
"edge-aware"
],
"relationKinds": [
"frame"
],
"variation": 0
}
],
"decisions": [
{
"relationId": "caption-follows-artifact",
"kind": "anchor",
"status": "suggested",
"reason": "keep the caption attached to the artifact",
"fallback": "keep the authored flow"
},
{
"relationId": "mark-frames-artifact",
"kind": "frame",
"status": "suggested",
"reason": "let the mark catch the image edge",
"fallback": "keep the authored flow"
}
]
} {
"authority": "bounded",
"gesture": "fracture",
"thesis": "the image is still holding after the axis broke",
"focalNodeId": "artifact",
"motif": "broken-axis",
"palette": "cold-to-warm-rupture",
"typography": "fragmented",
"depth": "near-far",
"interaction": "field-response",
"semanticOrder": [
"artifact",
"caption",
"edge-mark"
],
"nodePlanes": {
"artifact": "focal",
"caption": "midground",
"edge-mark": "foreground"
},
"nodePoses": {},
"layerOrder": [
"background",
"midground",
"focal",
"atmosphere",
"foreground"
],
"canAddAtmosphere": false,
"canRemoveRequiredContent": false
}