As described in PEP487 https://www.python.org/dev/peps/pep-0487/, regular meta-classing has the tradeoff that deriving from objects with different meta-classes is inconvenient at best.
If it's possible to implement plumber using __init_subclass__ we can overcome this shortcoming.
1.) This needs a lot of research.
2.) Python 2 needs to be dropped first.