Successful Response
DRAFT and TERMINATED are human judgments; the derivation in recompute_contract_status overwrites neither.
One term period, with the state and countdown derived server-side.
state / status / decision_deadline / deadline_kind / days_remaining are computed, never stored — the table, the email, and this response all read them from the same helpers so they cannot disagree.