Support for a new db type
Pretty much. You'll want to use a db-api 2.0 compatible driver, e.g. one of:

https://www.firebirdsql.org/file/documentation/drivers_documentation/python/3.3.0/Python-DB-API-2.0.html

You would subclass `Database` and start by implementing the `_connect()` method and go from there. I'm not familiar with Firebird so I am not sure what subtleties you may encounter along the way. The sqlalchemy codebase might provide some helpful hints, as well:

https://github.com/sqlalchemy/sqlalchemy/tree/master/lib/sqlalchemy/dialects/firebird

Since this is not a bugfix I will close, but feel free to raise any questions you encounter along the way and I'll try to help. Good one, thank for the pointers. At the moment it's definitely an experiment but I'll update if we get anywhere with it.
I'm interested in peewee since it is lightweight and looks approachable while still supporting what we require. We have some data in FirebirdSQL and I was going to have a look at getting peewee going against it as an experiment and learning experience. 

To get it up and running would it 'just' require implementing a subclass of Database with all of the methods raising NotImplementedError implemented or are there other places that need attention? Obviously to start with this is just an experiment and to get something correct would require tests.