Mixins / Inside-out composition
Surface and Mixins answer different questions
foldkit-surface and foldkit-mixins compose well because they govern different boundaries:
Surface
What data may this feature observe?
Which Messages may it emit?
Slots
Which structural points may callers customize?
What may they attach there?foldkit-mixins-surface connects the two. The SlotView receives the Surface projection rather
than the root Model, and its builder carries the Surface's Message subset.
mermaid
flowchart LR
app["Application<br/>Model · Message · update"]
surface["Surface<br/>observe / emit boundary"]
view["SlotView<br/>structural extension points"]
attachments["Style + Behavior"]
app --> surface --> view
attachments --> viewThis is why Surface integration should be thought of as an additional boundary, not as something you must understand before using mixins.