### `wai.audio.int_codec` through the integer operator set

- **The decode.** `int_audio::decode_typed` (so the `WIA1` dispatch, the staged sink and
  the browser crate) plans the synthesis as
  [integer-payloads](extensions/integer-payloads.md) §7 orders, lowers `model.wam` by
  `wam1/1` ([integer-operators](extensions/integer-operators.md) §13.3, with its PCM
  step), loads the graph under `acc64` with its bounds certificate, decodes the stream,
  and runs the graph through the operator set's interpreter with `t_out` as its scalar
  and the fast transposed-convolution kernel behind it. Its `check` ranges are the
  checks the direct decode made before each layer, and the PCM step's range is the one
  in which a sample's scaling fits `i64`, so the same clips are refused
  (`field_range`). Every committed output is unchanged, byte for byte, and every
  committed refusal fixture keeps its code. The direct decode is kept, test-only
  (feature `legacy_int`), in the differential tests and their nightly run.
- **Planned breaks** (SPEC §8, integer-operators §15.3 item 3), as for
  `wai.splat.int_codec`: new refusals of sets no committed corpus contains, each
  `model_mismatch` before any stream is decoded, the PCM step's range among the `check`
  ranges whose producer must meet them. A scan of every committed audio set and payload
  finds none affected.
- **Its `ops` member in the registry** ([integer-operators](extensions/integer-operators.md)
  §11). `registry/capabilities.json` gives `wai.audio.int_codec` the member
  `{"set": "wai-ops/1", "profile": "acc64", "subset": "full", "lowering": "wam1/1",
  "stage": {"rans64": {"table": "t4097", "escape": "lenient", "end": "canonical"}}}`.
  SPEC §5's row cites the payload ([integer-payloads](extensions/integer-payloads.md) §5)
  and the lowering (integer-operators §13.3), and SPEC §7 names the capability among
  those that decode through the operator set.

