meta To Bytes
Serializes just the checkpoint and changeID — plus the compaction epoch and docId — the client's position against the server, without touching the root. Mirrors JS metaToBytes.
This is what the offline-persistence layer writes after a sync. A sync advances the checkpoint while leaving the document unchanged, so re-serializing the whole document to record it would cost time proportional to the document for information that is a few dozen bytes. The epoch and docId are learned from sync responses, so meta is the only place they can be recorded between snapshots: omitting the epoch would make a server-side force-compaction invisible until the next attach presented a stale one, took ErrEpochMismatch, and re-anchored — discarding every un-pushed edit for want of a field.
Public — mirrors the public toBytes (a durable store may want to inspect it directly).