Hi,
<snip>
Suggestion: add a _guest marker for ordinary state. Fail the build on
unmarked fields. This ensures that some thought is given to each field,
instead of having a default that may be correct most of the time, but
not always.
Suggestion: add a mandatory position hint (_guest(7) or _pos(7)) that
generates ordering within the fields. This decouples the order of lines
in the struct from the protocol, so you can add state where it make
sense, or rearrange lines when they don't, and detect copy/paste errors.
I wouldn't make the position mandatory. I expect the next generation
migration wire protocol transmits the field names anyway, so the
ordering will not matter any more, we need it for compatibility with
today's format only.