This class needs to be part of the public API, so that users/other package devs can subclass it.  So that means it needs to be in `__all__`.  Also, with that change, I'd strongly suggest adding a "Notes" section that describes exactly what subclasses should override.  We'll probably need to add more about this later in the actual docs, but for now it should at least be in the docstrings.