Perhaps a (signed) version field would be useful, to allow for future breaking changes.
Not sure how it could be made so a gradual changeover would be possible, a version field would only allow gradual upgrade of clients, once a server is upgraded, everyone gets v2 messenges...
Also do you have an idea about how it should be implemented in existing systems, where users are already using the old system ?