We could save quite some data by using the tuple directive of msgp: https://github.com/tinylib/msgp/wiki/Preprocessor-Directives
It is not suited for stuff that changes its API, but the internal stuff would be a good fit, since we exchange version bytes during the handshake