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 --> view

This is why Surface integration should be thought of as an additional boundary, not as something you must understand before using mixins.