Remote / Server-derived state

Persistence and recovery

A snapshot is the entity store and nothing else; runtime state stays with the session. RemotePersistence.dehydrate/hydrate are the deterministic text forms (SSR embeds one in the page), RemotePersistence.save/restore keep one in Effect's KeyValueStore, and the Hydrated Message merges one into the Model by policy (replace or preserve-existing). A snapshot names its version and scope and may be bounded by maxBytes. The cache is server-derived and disposable: a snapshot that is another version, another scope, oversized, or malformed is removed and the planner refetches. This is the opposite of Sync's preserve-and-recover policy, because Remote holds no unsent user edits; there is nothing to lose.