Completes positional hold-tap with ZMK's companion setting: keys outside
`hold_trigger_key_positions` produce the tap when they are *released* rather
than when they are pressed.
Deciding on press means pressing a second same-hand modifier settles the first
as a tap, so same-hand modifier combinations are unreachable however the
position list is written. Deferring to the release keeps both behaviors: a next
key that is only tapped still settles the tap-hold as a tap, while a next key
that is held leaves the hold reachable.
On press an excluded key is buffered rather than resolving the tap-hold, which
also keeps the two in typing order once the decision lands; its release then
runs the same check the press path would have. The profile override sits in
bits 63-62, leaving the word 8 bytes wide.
`on_release_tapped_key_settles_as_tap_unchanged` is the invariance control: its
trace is identical with the setting off, which is the point -- the deferral must
not change the tapped case. The held case is what the setting buys, and it
fails without it.
Summary
hold_trigger_key_positionsand reusable[layout.regions]aliases to Morse configurationhold_trigger_on_releasefor same-hand chording without permitting excluded keys to activate a holdThis replaces rigid hand-only suppression with layout-defined position sets while preserving existing configurations.
Verification
rmk-config: 90 unit tests and 6 integration testscargo fmt --all --checkcargo clippy -p rmk-config --all-targets -- -D warnings