Having system, game and totally different control messages adds complexity to the protocol. And I do not see the benefit of it.
All the control messages keepalive, connect, accept, close and token could just become regular system messages.
Then the control flag can be removed from the packet header. And the parsing of a packet becomes cleaner.
As of right now its something like:
```
if packet.header.flags.control {
// assume uncompressed
// assume only one chunk which is contro...