The ecmascript package is merely a thin wrapper that registers a compiler plugin for .js and .jsx, and all the heavy lifting is done by the babel-compiler package.
Other packages can use the babel-compiler package to (help) implement their own compiler plugins, too.
A good model for writing a compiler plugin that uses babel-compiler is the coffeescript-compiler package, which generates modern ES2015+ code first, and then uses its own instance of BabelCompiler to handle the remaining compilation, automatically taking into account the needs of modern browsers, legacy browsers, and Node:
Note, however, that only one compiler plugin can handle a given file extension, so you might not be able to use both ecmascript and svelte:core, if both try to handle .js files. If you delegate .js compilation to babel-compiler, though, you might be able to replace ecmascript with svelte:core without having to reimplement too much of the Babel compilation pipeline yourself.