GCC 14.1 emits a bunch of warning when compiling (winedump & dbghelp).
This stems from some of the structures attempting to reflect file layout (after serialisation), whereas the variable length of some contiguous fields make it impossible (in C).
So use flexible array members for variable length arrays, and use an FAM as well for packing the more complicated bits. This keeps these data blocks as C structures for the fields that can be directly mapped, and leave to the caller the responsability of deserializing the rest.
This seem to be enough to get rid of these GCC warnings.