Smith::UI::Block
Blocks are what the TUI draws: every event becomes one, and the renderer decides which are already on screen (flushed) and which are still live.
lines must be free of IO — blocks are mutated by the turn fiber and read
by the draw fiber, and the only thing keeping that safe is that neither
side yields mid-operation.
The base is anvil's: the library owns the lifecycle (a block that says it
is finalized gets committed to the scrollback once and never redrawn),
while the concrete blocks below stay smith's own.