curious how hard it is to implement wire protocol compatibility vs the internal api surface. Are we talking like, an order of magnitude more work here? I wonder if, for example, Aurora team are literally maintaining forks of extensions for their implementation and that's why only a subset of all possible extensions are supported?
Internal ABI/API is used by extensions to directly interact with core subsystems and depends on internal models for things like storage.
It might be analogous to HTTP versus an nginx plugin.