Mirror / Mirrored state
Reading back
A URL mirror's reduce(model, url) sets the whole slice: a missing key is the
initial value, and a key that fails to decode is too, so ?page=abc shows page
one instead of breaking the page. A store mirror's reduce(model, message)
takes the MirrorRestored its restore Command yields and sets only the fields
still at their initial value, so an edit made before the store answered is kept.
On a cold load the URL wins where it names a key, then the store, then the
initial value.
When the store's keys are already in hand at boot (Flags the server embedded,
a synchronous read), there is no need to wait for the restore Command:
Prefs.bootstrap(keys) folds them into the initial Model before the first
render, and Mirror.bootstrap(initial, ...steps) composes store steps with
the URL step. See "Restore before the first render with bootstrap" in the
package README. Wiring.init stays the other
lifecycle: startup Commands after the Model exists.