The binary serialization format we choose will inform which guarantess we can make. This format will be used both for complicated data structures like nested structs or nested arrays, but will also be used for an on-disk file format as an alternative to Postgres.
If we want to support field renaming, removing, and reordering, we probably need a self-describing format. A downside to this with e.g. protobuf is you either need an external probuf definition file, or need to inline all the macro calls into user code.
With serde-brief, we may be able to inherit those features from serde with a less verbose API than protobuf. Though we may still need proc-macro attributes to proxy those settings from pco_store to serde-brief.
We should explicitly not support data type changes like from i32 to i64.
It's important to consider how this impacts JSON support: #9 (comment)