Advisory 09 — three layout assumptions we made for you, and how to overrule them
To: docade · From: WootBuild · Date: 2026-08-25 Status: OPEN — not blocking. Work has shipped on these assumptions. Trigger: producing room (24), streak-visuals (11) and social (4).
Why this exists
Three of your categories carry a layout contract that your manifest has no column for. Nothing in a work-list row can say these three squares must abut or this panel is composited whole, not tiled — so we had to decide, and a decision made silently is one you would find out about in a layout.
Each one below states what we assumed, what it cost if we are wrong, and the single line you would change. All three are cheap to reverse now and expensive to reverse after your UI is built around the other answer.
1. Room walls and floors are FIXED PANELS, not repeating tiles
We assumed: each room-treatments piece is a single 1024×1024 panel, composited whole at a known size. Its edges are never joined to a copy of itself, so they do not need to match.
Why it mattered to the art: the eleven walls carry their realm in the upper half — depth, sky, weather, distance. That is what makes a wall feel earned when a child completes a set. None of it can survive tiling: a horizon repeated four across is not a room, and a stitched felt seam that meets a different seam is a visible fault line.
If you tile them, all eleven walls are wrong and we would re-forge for seamlessness, which means giving up the upper-half payoff and going to an even all-over pattern like the floors.
The line to change: tell us the room renders a wall as a repeating background rather than a single image.
2. The streak track pieces sit on their horizontal centre line
We assumed: track-segment, track-node-locked and track-node-reached are each drawn on the horizontal centre line of their 256px square, with the connecting form running edge to edge. A node is centred; a segment spans full width. Laid side by side at equal size they form one continuous rail.
Why it mattered to the art: track-segment connects the two node states. Three separate 256px squares that must join in a layout is an alignment contract, and there is nothing in a size column that expresses it. Drawn any other way — a node sitting low, a segment inset from its edges — the rail breaks at every join and no amount of CSS fixes it.
If your layout stacks them vertically or insets them, say so and we re-draw on your axis. Eleven pieces, and the flames are unaffected.
The line to change: tell us the axis and whether the pieces are placed flush.
3. The four social panels are OPAQUE and full-bleed
We assumed: coop-bar, coop-complete, h2h-week and h2h-week-result are full-frame 512px artwork on their own #0d0f1a ground — not transparent cut-outs floating on your app background.
Why it mattered to the art: we tried it the other way first. Keying out a designed ground left a dark rectangle welded around each composition, because a ground that is part of the composition is not a backdrop. Same call your prize cards got in August, for the same reason.
What this means for you: place them as images, not as sprites. They already carry your ground colour, so they sit flush inside a card with no wrapper.
The line to change: tell us if these are composited over a surface that is not #0d0f1a, and we will supply them transparent with a redesigned ground.
Two more things worth knowing about these four panels
Neither is a question — both are decisions we made on your behalf and would defend, but you should know they were made.
Nobody is depicted, ever. Each participating child is a plain flat disc in their own colour. A drawn child is always the wrong child — wrong age, wrong hair, wrong skin — in a panel two specific real siblings are looking at. It also means the same four panels serve a household of two and a household of four with no redraw.
There is no text in the artwork, and the name bands are deliberately empty. h2h-week "names both children" — in HTML, over the image, at runtime. Each half carries a plain rounded band with nothing in it, sized for a name. Anything we drew there would be the wrong name, in the wrong font, permanently.
That constraint is also why these four are the only pieces in your whole engagement that are authored SVG rather than generated. Three generative passes produced three different failures, and the last one transcribed our own instruction sheet into the picture as headline text. Exact mirror symmetry, a guaranteed-empty band and a disc at a measured size are a drawing problem, not an image-generation problem. It cost less, too.
What we need
Nothing, unless one of the three assumptions is wrong. If all three match your layout, mark this closed and no work changes.
If any is wrong, the re-work is bounded and we would rather do it now: walls 11 pieces · track 3 pieces · social 4 pieces.