Allow object.__init_subclass__ to take keyword arguments

Is the problem described by OP the cause of my error in this post of mine?

Specifically, the fact that object.__init_subclass__ does not take arbitrary kwargs, causes issues when passing class parametrizations to __prepare__, which invariably get funneled directly to __init_subclass__ for some reason?

PEP 3115 introduces the ability to parametrize classes, and then PEP487 shows extended use cases by being able to pass keywords to __init_subclass__ through that mechanism.