Validate that offset is 4-byte aligned; throws ZR_MISALIGNED on violation.
Read len bytes as a subarray view, advancing cursor by len bytes. The returned Uint8Array shares the underlying buffer with the reader.
Read signed 32-bit integer (little-endian), advancing cursor by 4 bytes.
Read unsigned 32-bit integer (little-endian), advancing cursor by 4 bytes.
Read unsigned 8-bit integer, advancing cursor by 1 byte.
Advance cursor by len bytes without reading; validates bounds first.
Bounds-checked binary reader with cursor tracking.
Ownership: BinaryReader borrows the input buffer; caller retains ownership. The buffer must remain valid and unmodified for the reader's lifetime.