That's a lot of code for a toy project, impressive commitment!
How does the VIM family generally handle extensibility?
Do you have any unique takes there?
I use Emacs, and I get how emacs does it (smallish runtime for text display and lisp interpreter, everything else in lisp).