Interface CompileHonuaInteractionsOptionsExperimental

interface CompileHonuaInteractionsOptions {
    components?: HonuaInteractionComponents;
    fanOutCap?: number;
    onDispatch?: ((dispatch: HonuaInteractionDispatch) => void);
    view: ExplorationViewController;
}

Properties

fanOutCap?: number

Per-(on.ref, on.event) fan-out cap.

8
onDispatch?: ((dispatch: HonuaInteractionDispatch) => void)

Observes each dispatched action. Called after the verb ran; never called for a suppressed (action-originated) event, which is the whole point of "actions never emit events".

The exploration view this compiler owns — every action verb writes through it, and every exploration-backed event source subscribes on it.

Pass a view bound for the compiler alone (ctx.connectView({ id: "interactions", role: "custom" })), not a view a widget also dispatches through. That is what makes "actions never emit events" structural rather than best-effort: an ExplorationViewController delivers a bound view its own notifications only under includeSelf, so a state change this compiler originated is never routed back into this compiler, while a real user gesture published by any other view is.