Version 0

very limited but it does work, and I think the API is mostly good (will
likely want to change a few things once I start using it)