Providing a key map to libfn through a public member on the editor struct (or similar) should be pretty nice. That way UIs just have to provide a key combo -> command map and pass key presses through to libfn instead of trying to manipulate selections.
The API will still be completely open if someone wants to do something completely custom, but generally speaking you should be able to do 99% through just the key map.
I think this will also translate well to allowing people to customize the key map through a UI and/or config file.
Itβd be nice to support key -> list of commands to run in sequence too, that way you can have one key press chain multiple commands. Easier to build and chain command primitives that way too.