The only largely visible remaining portion is the GUI. pcb-gpmi supports building dialog boxes using the current HID (so called attribute dialogs, originally invented for exporter settings) and calling some simpler predefined dialogs like a progress bar or alert.
What's really missing is a way to create new menus on the fly. The user loads a script and the script makes up a menu with submenus, all bound to the proper actions.
This introduces a nice dilemma, tho: there is a real cool menu configuration file that makes the user able to reconfigure the menu system, hot keys, tool tips and whatnot (I wish more applications had this feature!). What if a script comes in and trolls the whole thing creating random menus at surprising places in the menu system? How the user can control what the script could do with his preciously crafted menu setup tailored to his own preferences?
I believe in sharp tools and careful users. I indeed plan to allow scripts to do whatever they want with the menu system but I invent some conventions too. As long as scripts stick to these conventions, the user retain control over the menu layout.
When a new menu "/File/foo" is created, using the hash create_menu() finds out that /File already exists and doesn't create it but use the existing widget from the hash. This means if the user creates menus from the res file that are also created by the script, the res file sort of overrides the script's later actions as all those menus will already exist by the time the script tries to create them.
And here comes the conventions part: