alias

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.