Translation table (Xt)
Xt's text format for binding keys and mouse buttons to named actions in a widget, replaceable from ~/.Xresources without touching the program.
Every Xt widget has a translations resource, a table whose left-hand side is an event sequence and whose right-hand side is one or more actions: <Key>q: quit(), Ctrl<Key>s: search(forward), Shift<Btn1Down>: select-start(). An event is written as modifiers, type and detail, and several can be chained for double clicks or multi-key sequences. The actions are defined by the widget class or registered by the program with XtAppAddActions, and Xt's Translation Manager does the matching as events arrive.
The point is that the table is a resource like any other. The directives #override, #augment and #replace decide whether the user's lines go on top of, underneath or instead of the widget's own, so a line such as XTerm*VT100.translations: #override Shift <KeyPress> Insert: insert-selection(PRIMARY) changes xterm's behaviour without a recompile. It was the 1980s answer to configurable shortcuts, and an unusually powerful one: xterm can send arbitrary strings with string(), and Athena editors could be rebound key by key. The syntax was also brittle enough – one missing \n\ in the resource file and the whole table silently vanished – that most people settled for pasting lines from Usenet. GTK and Qt dropped the mechanism entirely; there the bindings are hard-coded and you get a preferences dialog instead.