Java compiled to WebAssembly — direct DOM access, JS callbacks, bidirectional data flow
Java code calls document.createElement(), .appendChild(),
.style via @JsType(isNative=true) bindings.
No JS glue — WASM talks to the DOM API directly.
WASM calls JS functions via @JsMethod to log and update UI.