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.