UPDATE 2020-04-10: The below text was written back in Parsoid/JS days, but the need for a unified registration mechanism is still present in Parsoid/PHP days. For VE, you just add yourself to VisualEditorPluginModules in extension.json; we should be able to autodetect a ParsoidPluginModules section the same way.
There should be a way for extensions to bundle the needed support code for VE and Parsoid in the same directory structure they use for mediawiki core. "Installing" support in VE and Parsoid for a new extension should just be unzipping an extension in a specific directory. For small wikis where Parsoid and VE are on the same host, then you ought to be able to ln -s /var/www/mediawiki/extensions /opt/srv/parsoid/extensions and only unzip the extension once.
Once this is in place, we ought to document and evangelize this mechanism, perhaps with a simple"Hello, World" extension that shows how support for all three pieces is written.
(01:58:57 PM) cscott-free: James_F: is there a convention for how extensions register VE support yet? that should be easier, it's in a single directory tree still. (01:59:46 PM) James_F: cscott: Yeah, it's trivial. See the bottom of https://gerrit.wikimedia.org/r/#/c/284681/4/extension.json (01:59:57 PM) James_F: cscott: Add yourself as a "VisualEditorPluginModules" (02:00:03 PM) cscott-free: James_F: ok, a good start!
ps. if you use node-php-embed, you can run everything from one install dir and one process group. ;)