general:
- implement wth_display protocol
- the fate of wth_display, hide it completely in wth_connection and rename?
- implement object id re-use
- implement server-side object allocation
- implement protocol version negotiation
- in wth_connection_destroy, print warnings for every item remaining in
  the hash table
- implement object version inheritance
- wth_connection needs user_data with getter and setter
- add 64-bit protocol data types
- figure out and document if recursive dispatch is allowed or not
  (calling wth_connection_dispatch() from a handler called by
  wth_connection_dispatch())
- handle errors from wth_map functions
- check for and fix endianess issues

documentation:
- migrate from Doxygen to https://github.com/hotdoc/hotdoc
- document the protocol XML language
- document the protocol wire format
- write something about protocol design principles (or maybe write it
  for Wayland and just copy it to Waltham, since it's all the same)

generator:
- rewrite the generator to become more readable and maintainable
- generate <object type>_get_user_data()
- generate <object type>_get_version()
- generate enums
- generate SINCE macros (interface version adding the message)
- generate documentation

serialiser:
- implement send-buffering (non-blocking sending)
- support custom protocol extensions

deserialiser:
- support custom protocol extensions

tests/examples:
- fix server read error when client disconnects
- pick a test suite framework
- write tests for every API entrypoint
- write higher level tests, maybe based on the example server and client
- test raising all possible error conditions

build:
- check for timerfd in configure
- set up CI
