I'm upset WASM doesn't have any types other than numbers, so you can't export any real-world functions without relying on glue code, which converts strings and objects to numbers and the other way around

this is also the reason why the "hello world" of WASM is a function adding two numbers - because there are no strings in WASM

https://webassembly.github.io/spec/core/syntax/types.html

Check out the component model proposal, which adds a stable ABI for rich types like strings, arrays, structs, etc.

https://github.com/WebAssembly/component-model