there could be recommended runtimes, but shouldn’t the runtime be user-configurable anyway?

There is no generic “JavaScript runtime” interface that runtimes would implement, therefore support must be tailored to the specific interfaces of existing runtimes.

At one point we had UMD[0], which effectively provided runtime-agnostic interface, but ES modules were incompatible with that.

Deno and Bun have decent Node compatibility, so couldn't Node APIs be used as the generic runtime interface?

[0]: https://github.com/umdjs/umd

   --js-runtimes [deno|node|bun|quickjs]

There is another by Meta for react native. Forgot the name.

hermes