Surface / Surface and Bundle

Surface versus Bundle: observation against ownership

foldkit-surface and foldkit-bundle both talk about "features" and both touch Messages, so they are easy to confuse. They answer different questions:

Surface   = "What may this feature observe, and which Messages may it cause?"
Bundle    = "Which state machine owns this slice, and where does it live?"

A Surface is an observation + capability contract over state owned elsewhere. A Bundle packages a state machine — its Model, Message, init, update, Subscriptions, resources, view — so it can be placed at a Model path, possibly many times. The parent Model owns the placed state in both cases; the difference is who owns the transitions.