'Approval leaves it unchanged' is the assertion most audit trails can't actually make, because nothing binds the approval to the state that was approved. Recording the refusal, the override, and the terms as separate entries in the receipt is the right structure — the disagreement between policy and human is information, and collapsing it into a final 'approved' throws it away. The one thing I'd add is a content hash on the approved terms so a later edit invalidates the approval rather than inheriting it.