Iron Bug (nprofile…8jwj) ужасно работает не один десяток лет. Хоть сколько-то сложные программы, особенно не чистый cli, а tui/gui, должны иметь возможность программируемости пользователем, см. emacs/vim/аддоны в браузере/gimp/blender/etc. Через декларативные форматы произвольную логику выразить нельзя. Тащить всю возможную логику, которая только может понадобиться пользователю, в ядро программы — [плохой подход](https://ru.wikipedia.org/wiki/раздутое_программное_обеспечение).
Программы _можно_ конфигурировать через низкоуровневые языки общего назначения вроде Си, но примеров подобного подхода мало (сходу только [dwm](https://ru.wikipedia.org/wiki/dwm) назову), и в большинстве случаев недостатки подобного подхода непропорционально велики по сравнению с преимуществами (пол часа перекомпилировать программу для изменения одного хоткея — бред, плюс при ошибке конфигурации программа падает вместо корректной обработки ошибки пользователя).