- In the theory we explain the signature of metaclasses __new__ as `__new__(mcs, name, bases, attrs)`, so I would recommend using the same names in both places just for consistency.
- What's the *@NoSelf*?