Eric asked what the ↑↓ buttons did — the honest answer was "reorder a flat list that no longer exists, and fragment your wall diagram if pushed across a row boundary" (A1, B1, A2 renders as THREE rows under the letter-grouped layout). The useful half survives as ← → "move within its row"; the endpoint clamps at row-letter boundaries so the diagram can't fragment. Tests pin both the clamp and the legitimate within-row swap; the acceptance flow's reorder step updated to match the new semantics. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016jXZFSTZQKzAC8fqpWSz9g
122 lines
2.8 KiB
JSON
122 lines
2.8 KiB
JSON
{
|
|
"units": [
|
|
{
|
|
"name": "Library Kallax",
|
|
"openings": [
|
|
{
|
|
"id": "library-kallax-a1",
|
|
"label": "A1",
|
|
"zone": "oversize",
|
|
"width_in": 26.5,
|
|
"height_in": 13.25,
|
|
"depth_in": 15.4
|
|
},
|
|
{
|
|
"id": "library-kallax-a2",
|
|
"label": "A2",
|
|
"zone": "oversize",
|
|
"width_in": 26.5,
|
|
"height_in": 13.25,
|
|
"depth_in": 15.4
|
|
},
|
|
{
|
|
"id": "library-kallax-b1",
|
|
"label": "B1",
|
|
"zone": "party",
|
|
"width_in": 13.25,
|
|
"height_in": 13.25,
|
|
"depth_in": 15.4
|
|
},
|
|
{
|
|
"id": "library-kallax-b2",
|
|
"label": "B2",
|
|
"zone": "party",
|
|
"width_in": 13.25,
|
|
"height_in": 13.25,
|
|
"depth_in": 15.4
|
|
},
|
|
{
|
|
"id": "library-kallax-b3",
|
|
"label": "B3",
|
|
"zone": "party",
|
|
"width_in": 13.25,
|
|
"height_in": 13.25,
|
|
"depth_in": 15.4
|
|
},
|
|
{
|
|
"id": "library-kallax-b4",
|
|
"label": "B4",
|
|
"zone": "two-player",
|
|
"width_in": 13.25,
|
|
"height_in": 13.25,
|
|
"depth_in": 15.4
|
|
},
|
|
{
|
|
"id": "library-kallax-c1",
|
|
"label": "C1",
|
|
"zone": "general",
|
|
"width_in": 13.25,
|
|
"height_in": 13.25,
|
|
"depth_in": 15.4
|
|
},
|
|
{
|
|
"id": "library-kallax-c2",
|
|
"label": "C2",
|
|
"zone": "general",
|
|
"width_in": 13.25,
|
|
"height_in": 13.25,
|
|
"depth_in": 15.4
|
|
},
|
|
{
|
|
"id": "library-kallax-c3",
|
|
"label": "C3",
|
|
"zone": "general",
|
|
"width_in": 13.25,
|
|
"height_in": 13.25,
|
|
"depth_in": 15.4
|
|
},
|
|
{
|
|
"id": "library-kallax-c4",
|
|
"label": "C4",
|
|
"zone": "general",
|
|
"width_in": 13.25,
|
|
"height_in": 13.25,
|
|
"depth_in": 15.4
|
|
},
|
|
{
|
|
"id": "library-kallax-d1",
|
|
"label": "D1",
|
|
"zone": "general",
|
|
"width_in": 13.25,
|
|
"height_in": 13.25,
|
|
"depth_in": 15.4
|
|
},
|
|
{
|
|
"id": "library-kallax-d2",
|
|
"label": "D2",
|
|
"zone": "vintage wargames",
|
|
"width_in": 13.25,
|
|
"height_in": 13.25,
|
|
"depth_in": 15.4
|
|
},
|
|
{
|
|
"id": "library-kallax-d3",
|
|
"label": "D3",
|
|
"zone": "heavy",
|
|
"width_in": 13.25,
|
|
"height_in": 13.25,
|
|
"depth_in": 15.4
|
|
},
|
|
{
|
|
"id": "library-kallax-d4",
|
|
"label": "D4",
|
|
"zone": "cubes",
|
|
"width_in": 13.25,
|
|
"height_in": 13.25,
|
|
"depth_in": 15.4
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|