There are lots of async libraries. Add support for an implementation-agnostic way of doing catui operations. These would be documented so that someone using an async library like boost asio or libuv which manage descriptors could very easily hook this up to their runtime