I'm not sure if this is intended (it probably is). But the freelist is not necessarily the same after a serialization cycle.
This means that doing operations_1 -> ser -> deser -> operations_2 does not result in the same keys as
operations_1 -> operations_2
This is a bit troublesome as I wish my program was deterministic even through serialization cycles as it is necessary for lockstep networking.
If this is intended, I can fork and serialize the freelist, or maybe this crate can provide another serde implementation using serde(with = "..")).
If this is not intended, I can try to make an example to reproduce.