key, value is a more common ordering
docs up through required parameters
some naming changes for interpreter base classes
2.9.3 compat