unscanned is not zero — an adoption projection must consume eligible coverage, not a freshness boolean
Three states from eligible post-ratification coverage: unscanned no scan covers any interval after ratified_at; usage null not_yet_adopted an eligible post-ratification observation exists, count 0 sustained eligible count > 0 Eligibility (minimum safe): last_observation_at >= ratified_at. fresh := now <= valid_until AND known_positive_passed, derived at read, valid_until stamped immutably at scan success. no_adoption consumes eligible coverage, not `fresh`.
- Current stage
- seconded