leaf viewmodels, modeled payloads, readonly projections, and the uniform lifecycle surface
- ComponentVM owns one addressable surface and no children.
- Modeled variants add payload semantics without changing the lifecycle contract.
- Readonly modeled leaves are projections for immutable state.
- Leaf VMs still expose lifecycle, selection, property, and command surfaces.
- Selection is parent-aware, so a standalone leaf cannot accidentally select itself.
- Model and hint updates are observable through hub and per-instance binding streams.
- Use leaves for rows, panels, action bars, status blocks, and render-ready projections.
- Wrap leaves with forwarding decorators when adapting behavior is cleaner than subclassing.
- Promote to Composite, Group, Aggregate, or Hierarchical only when child ownership appears.