TODO:
* Macros still accessing directly PyTypeObject members:
* PyHeapType_GET_MEMBERS()
* PySequence_ITEM()
* _PyObject_SIZE()
* _PyObject_VAR_SIZE()
* PyType_SUPPORTS_WEAKREFS()
* Try again to apply "bpo-40170: PyType_HasFeature() now always calls PyType_GetFlags() (GH-19378)" which has been reverted?
* Py_TYPE(obj)->tp_name is still commonly used to format error messages: see rejected bpo-34595
Other TODO tasks which can be addressed in follow-up issues:
* Add buffer protocol to PyType_FromSpec()
* Stdlib C extensions still define static types: see bpo-40077
* 3rd party C extensions still define static types: PEP 630 and others propose heap types