Configurable keyboard mapping system design

@docs/EDITOR_UI_REFERENCE.md use librarian and search agents to research how other editors do user editable keyboard mapping and consult oracle to add a section in the reference document about keymaps and lets sketch out a feature design document for adding configurable keyboard mapping system to our applicaiton in @docs/feature/KEYMAPPING.md
Ran 1 tool
Ran 1 tool, read 1 file

Excellent research! Now let me consult the oracle for guidance on designing our keymapping system.

Ran 1 tool

I have comprehensive research and oracle guidance. Now I'll create both documents.

Ran 1 tool, read 2 files, ran 1 search

Let me find the end of Chapter 12 to place the new chapter correctly:

Explored 1 file, 1 search

Now I'll add the new Keymapping chapter and update the TOC. First, let me update the TOC:

Edited 1 file (+1)

Now add the new chapter before Appendix A:

Edited 1 file (+446), ran 1 tool

Now let me create the feature design document:

Created 1 file (+847), ran 1 tool

Done! I've completed both deliverables:

  1. Chapter 13: Keyboard Mapping and Command Dispatch added to EDITOR_UI_REFERENCE.md - covers core entities, key formats, storage strategies, context systems, dispatch architecture, conflict resolution, configuration formats, and platform considerations.

  2. docs/feature/KEYMAPPING.md - comprehensive feature design document with:

    • Module structure and data flow diagrams
    • Complete Rust code for all types (Keystroke, Keybinding, Command, Keymap, KeyContext)
    • TOML configuration format with examples
    • Default bindings implementation
    • Integration guide with your Elm architecture
    • 8-phase implementation plan (~15h total)
    • Command reference table

Key design decisions based on research from VS Code, Helix, Zed, and Neovim:

  • Flat vector storage (simpler than trie, sufficient for editor-scale)
  • TOML config (Rust-native, human-friendly)
  • mod modifier for platform-agnostic shortcuts
  • Simple &&/! condition syntax (extensible later)
  • SmallVec for sequences (most bindings are 1-2 keys)