Binds a Surface's projected Model and Message subset to a SlotView.
The renderer's input is the Surface's projected Model, so Style and Behavior
contributions can only read what the Surface projects. Its builder is typed
with the Surface's Message subset, so a Behavior cannot emit a Message the
Surface does not expose. The returned value is an ordinary SlotView, so the
core attach/pipe algebra applies unchanged.
One serializable description of a Surface and the SlotView that renders it:
what it observes and may emit, and where Style/Behavior attach. No functions,
so it can be committed, diffed, or handed to DevTools and agent tooling.
Serializable metadata for DevTools and docs: the published slots and the
names of the attached Mixins, with no functions. It composes with
Surface.inspect, which reports what the Surface observes and emits.
Renders a SlotView for surface's projection of root with an inert
builder: no runtime, so handlers are built but never dispatched. For demos,
tests, and static output.
Adapts a SlotView to a Surface renderer. Surface.view hands a renderer a
ViewBuilder — the real builder with its MessageUniverse phantom removed —
and this is the matching boundary cast, sound because the renderer only
constructs the Surface's Message subset.