Site / With Remote and SSR

Why it is shaped this way

No loaders. A route that fetches would make the Site an async runtime with its own cache beside Remote's. Instead a page declares what it reads, and the store decides what is missing. Coming back to an owner while the store still holds their projects fetches nothing. Two pages reading the same project share one entity. A mutation elsewhere updates every page showing it.

No waterfalls from nesting. Requirements are derived, not run in route order. Sibling reads plan together, and Remote fetches them concurrently. A read that reveals another (a page naming its blocks) costs another pass of satisfy, one level at a time.

One declaration, four uses. Add a node with a Surface and the browser's reads, the server's preparation, the handover check and the prefetch all follow, since all four read sources.