Parent: #320 Define the deterministic renderer-font record envelope before extracting full face data. Scope: - add a versioned little-endian logical record header and section directory with explicit offsets/counts - retain #319 source hashes and reject source drift - provide bounds-checked generator-side writer and standalone reader that needs no SFNT/OpenFontReader parser - define deterministic binary and generated-C# representations from one logical model - keep production rendering unchanged Acceptance criteria: - synthetic and all-three-face identity/header fixtures round-trip byte-for-byte - invalid schema, endian, offset, count, overlap, truncation, source hash, and trailing bytes fail clearly - section and face ordering is deterministic - binary and generated-C# readers produce equal logical headers/directories - schema/compatibility and AOT/trimming rules are documented
Parent: #320
Define the deterministic renderer-font record envelope before extracting full face data.
Scope:
Acceptance criteria: