Key maps as key locations

I’m posting a possible QWERTY muscle memory locator to key symbols map so you could check out for yourself how comfortable the notation feels. I did not visually arrange them, so you get no visual clue and might be guided entirely by the syntax when mapping.

l-pinky[ 0, 2]: 1
l-pinky[ 0, 1]: q
l-pinky[ 0, 0]: a
l-pinky[ 0,-1]: z

l-ring[ 0, 2]: 2
l-ring[ 0, 1]: w
l-ring[ 0, 0]: s
l-ring[ 0,-1]: x

l-middle[ 0, 2]: 3
l-middle[ 0, 1]: e
l-middle[ 0, 0]: d
l-middle[ 0,-1]: c

l-point[ 0, 2]: 4
l-point[ 0, 1]: r
l-point[ 0, 0]: f
l-point[ 0,-1]: v

l-point[ 1, 2]: 5
l-point[ 1, 1]: t
l-point[ 1, 0]: g
l-point[ 1,-1]: b

r-point[-1, 2]: 6
r-point[-1, 1]: y
r-point[-1, 0]: h
r-point[-1,-1]: n

r-point[ 0, 2]: 7
r-point[ 0, 1]: u
r-point[ 0, 0]: j
r-point[ 0,-1]: m

r-middle[ 0, 2]: 8
r-middle[ 0, 1]: i
r-middle[ 0, 0]: k
r-middle[ 0,-1]: ,

r-ring[ 0, 2]: 9
r-ring[ 0, 1]: o
r-ring[ 0, 0]: l
r-ring[ 0,-1]: .

r-pinky[ 0, 2]: 0
r-pinky[ 0, 1]: p
r-pinky[ 0, 0]: ;
r-pinky[ 0,-1]: /

r-pinky[ 1, 2]: -
r-pinky[ 1, 1]: [
r-pinky[ 1, 0]: '

r-pinky[ 2, 2]: =
r-pinky[ 2, 1]: ]
r-pinky[ 2, 0]: \

I haven’t checked the keycodes (showkey --ascii) for all, but two (this is what is returned by my terminal, I’m not sure about the wire format here and if kakoune has only ever access to those terminal interpreted values — but that only means we have to move the anti-corruption-layer further down the stack and not let it bleed in and affect kakoune muscle memory config):

QWERY:
l-middle[ 0, 1]: e 	101 0145 0x65

Workman: (emulated by the keyboard firmware)
l-middle[ 0, 1]: r 	114 0162 0x72

And here is an example where CSI u encoding comes into play (but fortunately kakoune understands this perfectly):

Return:
^M 	 13 0015 0x0d

Ctrl+Return: (CSI u encoded)
^[[13;5u 	 27 0033 0x1b
 	 91 0133 0x5b
 	 49 0061 0x31
 	 51 0063 0x33
 	 59 0073 0x3b
 	 53 0065 0x35
 	117 0165 0x75

And here are xev events when swithing between spanish and english layout (confirming that keycodes are invariant):

KeyPress event, serial 38, synthetic NO, window 0x400001,
    root 0x39f, subw 0x0, time 3176346, (90,570), root:(1372,1697),
    state 0x0, keycode 47 (keysym 0x3b, semicolon), same_screen YES,
    XLookupString gives 1 bytes: (3b) ";"
    XmbLookupString gives 1 bytes: (3b) ";"
    XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x400001,
    root 0x39f, subw 0x0, time 3176498, (90,570), root:(1372,1697),
    state 0x0, keycode 47 (keysym 0x3b, semicolon), same_screen YES,
    XLookupString gives 1 bytes: (3b) ";"
    XFilterEvent returns: False

KeyPress event, serial 38, synthetic NO, window 0x400001,
    root 0x39f, subw 0x0, time 3180682, (90,570), root:(1372,1697),
    state 0x2000, keycode 47 (keysym 0xf1, ntilde), same_screen YES,
    XLookupString gives 2 bytes: (c3 b1) "ñ"
    XmbLookupString gives 2 bytes: (c3 b1) "ñ"
    XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x400001,
    root 0x39f, subw 0x0, time 3180794, (90,570), root:(1372,1697),
    state 0x2000, keycode 47 (keysym 0xf1, ntilde), same_screen YES,
    XLookupString gives 2 bytes: (c3 b1) "ñ"
    XFilterEvent returns: False

This raises the question if it is feasible for kakoune to work with raw key events when it’s expected to interpret muscle memory locators (in all but insert mode).