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.