Resolved arg. For arg-bearing gestures, the descriptor's default
fills in when the slot is omitted (e.g. wheel → arg: '*').
Undefined for gestures whose descriptor has no arg.
Structured modifier requirements; empty map = "no modifiers held".
One or more phase atoms (channel + phase). Empty array is invalid.
Bare-phase shorthand in the source string desugars to channel '&',
so [engaged] parses to [{ channel: '&', phase: 'engaged' }].
For hasTarget gestures: target string with '*' as the wildcard
sentinel. Defaults to '*' when the slot is omitted. Undefined for
hasTarget=false gestures.
v3 parsed-route shape.