Description
Dear Chris, sorry for taking quite long to read and reply to your proposal!
I see a potential path to combine preview1 and 0.2/0.3 - by using a core module binary representation of a "component" (this involves the "cm32p2|" naming of symbols https://github.com/WebAssembly/component-model/blob/add-build-targets/design/mvp/BuildTargets.md (and was previously called "wasit2")), potentially even compiled as a shared library (to achieve the relocatability of the data section) - but this sacrifices the insulation between modules. Insulation would require multi-memory, basically the wasip2 module file format is best suited for insulation.
To get the overhead of the canonical ABI down, caller provided buffers described in WebAssembly/component-model#369 are most promising. I clearly aim for reducing the heap memory allocation overhead per call down to zero using the shared memory buffer mechanism because of real-time constraints and functional safety argumentation.
I am sorry, that even though there is good progress on definition and implementation, these technologies are not yet available right now.