I really hope that this year I'll be able to build my "embroidery addon" for my sewing machine, then I'll probably play around with inkstitch as well
https://github.com/MarkMLl/pesdump might have some useful stuff. I've since attempted to modify it to patch files but it turns out that the Brother machine I have access to is /very/ picky about having everything consistent... I can trivially crash its firmware resulting in a (watchdog?) reset.
A great deal of work's gone into Inkstitch... lots of people (including Torvalds) appear to have dipped their toe in the water but I think it's the most mature project by far. And compared with the cost of Brother's own software it's worth supporting (you can get "informal copies" cheaply, but they're NBG without one of Brother's dongles).
I'm still trying to work out how things hang together, but with the number of things that take plugins these days I'd have thought that there would be a niche for a good development too which allowed the appropriate DLL/so/binary to be customised.
(Slightly later) Extension invocation is described at
https://inkscape.org/develop/extensions/ although I've yet to work out how an extension modifies the live image.
Considering some stuff I've done in the past where a communications program could invoke a nested shell, hence a copy of Lazarus, hence debug a nested copy of itself, I find myself wondering whether a facility whereby Lazarus could be invoked in lieu of a program to be debugged and would transparently pass on all (shell) variables, (command line) parameters and open handles (in particular stdin and stdout) would be useful.
That would allow somebody working on something like an Inkscape extension to switch between running his binary and running the full development environment with a one-line change to a configuration file (Inkscape .inx file in the current case).
https://wiki.inkscape.org/wiki/index.php?title=Script_extensionsMarkMLl