Resource ceilings a reader enforces on decoded output.
Container headers are untrusted: a reader checks the claimed size against these limits before allocating, then keeps checking as frames arrive, so a tiny file cannot request terabytes of output. A zero field means that ceiling is not enforced. The plain read(path) overloads apply these defaults, which admit ordinary long recordings (2^30 frames is over three hours of stereo at 96 kHz within 4 GiB of float output); callers reading longer material pass larger limits explicitly, and trusted local-file callers whose path was chosen by the user or host pass unbounded(). Field names match WavDecodeLimits.