Learn / Foldkit Plus
Choose who owns the state
| What you are adding | Authoritative owner | Extension |
|---|---|---|
| Local UI state or a reusable widget | Parent Model and its update/child update | Bundle, Primitives |
| Facts loaded from a server | Server; the client cache is disposable | Remote |
| Offline edits that must converge | Client-authored operations in an authoritative journal order | Sync + Durable |
| Offline edits to rows a server owns | The journal; the table is its read model | Sync (/entity, /journal) + Remote |
| An interactive grid over the application's rows | The grid's Bundle for focus, selection and columns; the rows stay the application's | Data grid |
| A URL or remembered preference | Local Model; the external value is a representation | Mirror |
| Agent access or a customizable view | Existing state and transitions | Agent, Surface, Mixins |
A Surface can observe several owners. Observing a field does not grant a second package permission to change it outside its owning transition.
intent → Message → update → Model → Projection / Surface → consumer
|
└→ Command → result Message → update