pub fn answer_return_inputs(
vault: &Path,
pp: &Passphrase,
year: i32,
input: &mut impl BufRead,
out: &mut impl Write,
) -> Result<(), CliError>Expand description
income answer --year N — ask every live question, then store.
Refuses on a year with no row: only income import creates one. Answering questions about a return
that does not exist would materialize a near-empty blob, which then takes PRECEDENCE over the user’s
tax-profile (the resolver ranks ReturnInputs first) — silently replacing a working profile with an
empty return. A missing row is a mistake to report, not a shape to invent.