- parse-trigger-cmd: use parse-compound-event-name so 'trigger foo:bar' and
'trigger foo.bar' preserve the full event name. Also parse an optional
detail dict '(x:42)' like parse-send-cmd.
- compiler: 3-arg (trigger NAME DETAIL TGT) emits dom-dispatch with the
detail dict. 2-arg (trigger NAME TGT) unchanged.
- emit-on event-ref bindings now use (host-get event 'detail') → the event
carries detail as a JS object, so the SX 'get' primitive returned nil
and tests checking 'on foo(x) … x' saw empty values.
Net: trigger 2→6 (100%).