libopenttd's main purpose is to provide easy interfaces to OpenTTD's connections, allowing developers to focus more on the functionality of their applications, rather than having to worry about communicating the OpenTTD protocol.
It began mainly as a complete rewrite of libottdadmin2, using python's metaclass system for easier and cleaner methods of describing the protocol, so that the code can be used both for python developers to have a fast and clean interface to OpenTTD, and for non-python developers to have a reference of how the protocols work, so that they can use this knowledge in re-creating the protocol in whatever language they want.