I wrote that before I saw your reply.

Well, yes, this is my point about why we don't need to use `_init_keys` here if we're going to have to refactor and think about design later anyway.

Regardless, I still think the checks should be moved to the appropriate subclasses.