Great progress: working scripting!
I started off the day by creating a dialog box for editing the local and global JavaScript text for transform items, and made the mistake of choosing a JEDI component (TWideHLEditor) to create the syntax-highlighting memo components. These caused access violations all over the place. In the end, I removed them, and installed the UniSynEdit package instead. That editor seems better and more flexible, and gives no errors.
Then I got file i/o working, and added JS Bridge code to the dialog box to check errors. I figured out how to get an error report back from JS Bridge (a new feature, not documented properly). That seems to work a treat.
Tested, bugfixed, and tested again. Then I added and tested handling for the old file format.
Now we're ready for a real test, using DB's Waterloo Script files. I also need to make sure the Unicode stuff really works in the UniSynEdit.