Package-level declarations
Types
Typed decoder options (KD-2), applied through the EXISTING av_opt_set funnel between codec-context creation and open. Control plane only (law 1): these configure an open, never a per-frame call. compile is the pure, golden-tested mapping to option pairs; a wrong key in options reproduces the funnel's measured EINVAL path rather than being filtered here.
avcodec's skip ladder, by its own option value names.
The typed filter DSL (KD-1): a compilation layer onto the description STRINGS the existing FilterGraph.buildVideo/buildAudio already take. Nothing here crosses into C; the laws that bind it:
A downmix or routing matrix: Pan("stereo", "c0=FL+0.7*FC", "c1=FR+0.7*FC"). The channel expressions are FFmpeg's own pan syntax, escaped as one value because pan's separator is the pipe, which the chain separator must not see.
The escape hatch (law 2): any chain fragment the typed set lacks, joined verbatim. Capability checks cannot see inside it; the caller owns that claim.
The typed encoder layer: sugar compiling INTO the existing options maps of the encoder specs. Zero C, zero new funnel; applyTo returns a new spec whose options carry the typed knobs as the exact av_opt_set strings the wrappers already send.
Linear gain: 1.0 is unity, 0.5 is half amplitude.