Thanks for sharing! Instead of using meta classes for subclass registration though, please just use __subclass_init__ instead. It’ll often be simpler unless you have a complex use case.
https://docs.python.org/3/reference/datamodel.html#object.__...
https://docs.python.org/3/reference/datamodel.html#object.__...
And metaclasses can be any callable, not just class. It's usually better to use a simple function.