ContractLaw:
| { law: "no-gain-added" }
| { law: "output-le-input-plus"; param: string }
| { law: "unity-at-default" }
| { law: "delayed-copy"; samples: "reported" }
| { law: "bypass-identity" }
| { law: "tail-decays" }
| { law: "constant-power-pan" }
| { law: "linear-sum" }
| { law: "finite" }
| { law: "no-denormal-state" }
ONE stage law, as a stage's row declares it — a closed union rather than
{ law: LawKind }alone because two members carry an argument the sentence and the C constant both need:output-le-input-plusnames WHICH parameter is the allowed excess (a compressor's makeup gain — the only knob that may push output above input), anddelayed-copynames how the delay is expressed ('reported': the stage's own reported sample count, never a literal copied into two places). Every other member carries no argument — the sentence is the whole law.