We can support both the old format and the new one for a while. The new one will have the advantage of being easier to understand and more flexible so we can add new features, make some parts optional, without having to fill in positional arguments we may not have. (they may not be relevant or may not be useful)
Example of ugly packet formats which would benefit from this: r20252 (adding relative position to the existing position parameter to avoid adding it at the end of the packet, which has optional fields..), configure packets, map packets, etc...
We can continue to support the old format, and convert to the new one - and maybe the same conversion function could be used by both the client and server to keep the code simple.
Could also be used for keyboard (#1172, #1716) and refresh (#1449), pointer events (#1941) On a more general note: info packets and #1983, moving keyboard packets out of hello, hello namespace (#1154) are all related to legacy formats.
Could be useful for ticket:2243#comment:1
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1942