New features should be submitted as a pull request. If you are
submitting a new feature, please title it as such, and provide a
description of it. Any new feature should maintain the current API where
possible, and make explicit when it does not. Your PR will not be merged
until the other implementations can be made to match it, so it helps if
you try to implement it in them as well.

Because I use waffle.io, I appreciate it if the description includes a
list like the following:

If you would like to write an implementation in a new language, thank
you! Following these rules will make things much faster to merge, though
exceptions can be made if necessary.

The new implementation should be in a folder labelled lang_src (ex:
py_src)

Setup scripts should be in the top level folder

It must at minimum support the mesh network implementation

Where possible, it should maintain the current
inheritence/architecture scheme

Where possible, it should use the same flags as the current OP-codes

Where possible, it should keep a similar API

Where possible, it should have unit tests

Where reasonable, users should be able to register custom callbacks

When this is ready, submit this as a pull request. If you name it as
such, it will take priority over everything but critical bugfixes. After
a review, we will discuss possible changes and plans for future
modifications, and then merge.