Expand description
WitBoundary mirror for AppEffect (plugin-host.md §4.4, PH7.3b2).
AppEffect is the App-side typed effect carried by Effect::AppAction —
chord-bound work with no grammar concept attached (<Esc> exits Visual,
<C-w>v splits a pane, o opens a line below). Mirroring it unblocks the
effect::app-action arm (which crossed as a typed error at PH7.3b1b).
Every arm is pure, flat, non-recursive data and reuses the shared payload
mirrors (ModalState/VisualKind/SearchDirection/Register, PH7.3b1a)
plus four app-effect-only helper enums (ViewportPos/ScrollPos/
PaneDirection/HScroll). One arm is absent by design:
AppEffect::NarrowTrigger { range: Option<Range> } carries the recursive
ex-command Range (RangeBound::Offset { base: Box<RangeBound> }) + a
plugin RangeId, which WIT cannot express — it crosses as a typed
WitBoundary error until a range mirror lands (the Effect::Global
precedent). NarrowLines (a pre-resolved line span) crosses fine.