Replaces the registratie wizard's sessionStorage draft with a backend-owned
Concept aanvraag (PRD 0001, phase D — the registratie vertical slice).
- createDraftSync (registratie/application): reusable controller (field-initializer
idiom, like createUploadController). Creates the Concept lazily on first progress,
stamps `?aanvraag=<id>` into the URL, debounced-syncs the machine snapshot per
change, and resumes from `?aanvraag` on load. Inert without a Router or when an
explicit seed is present (Storybook/tests) — no network there.
- hasProgress (machine, pure + spec): "worth persisting?" — excludes the automatic
BRP address prefill so a bare page visit creates nothing. Accepted regression:
a step-0-only address edit isn't persisted until the user advances/chooses.
- Wizard: dropped STORAGE_KEY/restore + the sessionStorage effect; restart() detaches
the Concept and drops the link.
Deferred (noted): ApplicationsStore -> phase F (dashboard is its only consumer);
intake-v3 + herregistratie persistence -> phase E (copy this pattern).
Gates green: vitest 125, lint, build; backend unchanged (dotnet 56).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>