pub fn live_questions(ri: &ReturnInputs) -> Vec<Ask>Expand description
★ EXACTLY the questions this return needs — the MANDATORY declarations DERIVED from the registry (so the prompt scope IS the refusal scope, by identity: the no-brick property is now true by construction, not by a second hand-written list that can drift, r1 M-1), then the skippable DOBs.
Every live declaration is asked in ONE pass — including ones already answered, whose current value
is offered as the default. A blob the screen refuses cannot be stored, so answering only some
declarations would leave the return refused and unstorable; asking everything at once prevents that
deadlock. The spouse DOB prompt is gated on header.spouse.is_some() (r3 I-7).