Unknown-field preservation: two paths Unknown fields: two paths, two fates new code adds tag 4 (email) — old code reads, rewrites, new code reads again PATH A — binary round-trip proper runtime stores unknown bytes new writer tags 1-4 old reader knows 1-3 write back bytes untouched new reader tag 4 intact KEPT no loss --> --> --> --> PATH B — JSON convert or field-by-field copy unknown bytes have nowhere to live new writer tags 1-4 old proxy copies 1-3 fresh record tag 4 missing new reader email gone LOST silent drop --> --> --> --> wire-compatible is not meaning-preserving: test the runtime AND the conversion path