Currently an incompatible client will work until it doesn't. Then it will start behaving weirdly and nobody will know why.
Would it be better if errors could be detected earlier on?
Pros:
- It's clear when clients are compatible and when they are not.
- Perhaps there could be a compatibility mode for newer clients and older servers. That wouldn't be possible unless it actually knows if it's compatible.
Cons:
- Clients that don't make use of whatever change there was would still break.
- If there would be an exploit in synac and the server is running an old version, an attacker would know about it. (although synac is written in Rust, so I doubt there will be one 😎)