# RD-22 — Split `intake-wizard` into three step components Status: done Source: PLAN.md 3c, order step 4 ## Why `intake-wizard.component.ts` measures ~362 effective lines against a limit of 250, and carries `/* eslint-disable max-lines */`. Nearly all of the excess is one `@switch` with three `@case` blocks — three screens' worth of markup in one file, where reading any one of them means scrolling past the other two. The three cases are already independent. Each reads only the answers, the errors and (for two of them) the scholing threshold. None needs the store. ## Read first - `apps/ssp/src/app/registratie/ui/address-fields/address-fields.component.ts:13-18` — **the contract to copy, verbatim.** "Pure & presentational — values in via `value`, errors in via `errors`, every keystroke out via `fieldChange`. No store, no services, no internal state; the container owns the Model and decides what a change means." Two containers already reuse it. - `intake-wizard.component.ts:72-249` — the `@switch` and its three cases. - `intake.machine.ts` — `Answers` (21), `lageUren` (52), `SCHOLING_THRESHOLD_DEFAULT` (43), and `Errors` at line 63, which decision 2 exports. - `libs/shared/src/layout/wizard-shell/wizard-shell.component.ts:103-113` — the `