Before the unified object protocol, we support passing additional extension objects around by declaring a type as an extension type.
The old extension mechanism requires the types to register their constructor and deleter to a VTable in order to pass a container around. It does not enjoy the benefit of the self-contained deletion property of the new Object system.
This RFC propose to deprecate the extension VTable in favor of support all container variation passing via the object protocol to simplify the PackedFunc calling convention.
Note that the register_extension funtion in the python side continues to work when the passed argument does not require explicit container copy/deletion, which covers the current usecases of the extension mechanism.
The proposed change is implemented in #4578.