Ring what the selection raises into the foreground: the shapes themselves,
and every wire this gesture may re-solve. What is not ringed is the
background — the geometry a mutation of this selection will route around
rather than re-decide (docs/foreground-router-playbook.md).
Draw the current level’s shapes and routes in their normal (non-interactive)
state, in the canonical layer order. Generic over the Renderer backend so
it drives both the on-screen Painter and the SVG exporter. The layer order
itself lives in DrawingPasses.
Draw the current level with one shape omitted — used while an in-place editor
stands in for it (a text box being edited), so the editor isn’t drawn over the
shape it replaces.
Draw the current level with one shape highlighted in
RenderMode::Selected, in the canonical layer order. Shared by the
selection tools (which layer their own overlays on top) so the selected-state
render lives in one place.