The boundary
A View member anchors a component to the client; a provider class anchors the server. Handlers written inside a View compile to browser code; handlers on domain classes are server code. An emit whose name crosses realms IS the boundary — the transport is generated, never written. A server-realm name inside client code is a located compile error, not a runtime surprise.
// board.hl — one file, both realms import Store from './store.hl' Hybrid rows = Store.topRows($board) // server: per-request need View { ul { for (r of rows) { li { r.title } } } button { 'refresh' on click() { // client: ships to the browser emit repull({ board = $board }) // the emit IS the boundary } } }