* Use `js_sys` and `web_sys` for general JS and Web bindings.
* Ludus, however, speaks in JSON strings and requires a hand-written JS wrapper, which should make the whole JS interop thing much easier.
- For that, we use `serde_json`.
* The canonical reference for all this is https://rustwasm.github.io/wasm-bindgen/introduction.html.
* Look into what thi.ng does with Zig in its WASM packages: https://github.com/thi-ng/umbrella/tree/develop/packages, especially https://github.com/thi-ng/umbrella/tree/develop/packages/wasm-api.
- It's looking like `--target web` is the most appropriate to use in 2024, since they use ES modules and not CommonJS, which is what everything else uses (and necessitates the build step). See https://rustwasm.github.io/wasm-pack/book/commands/build.html.