Excellent documentation!
I have a question regarding the template class system:
Do we have to retain the original names, even when they're obscure or abbreviated?
For example, why not rename SRDialog to SaveRestoreDialog? Osc to Oscillator? CT to CycleTo?
And what the meaning of SQEgo? Is it supposed to be Space Quest Ego?
What about SQ5? Why not TemplateGame/CustomGame?
Regarding SQ5 for the game name, this is required so that it works in ScummVM (otherwise, ScummVM will throw its hands up and say, "I don't recognize this game"). I should probably get ScummVM to add explicit support for recognizing SCI1.1 template games.
SQEgo could probably re-named. Any suggestions? TemplateEgo? I could possibly fold it into Ego too.
As for renaming, I'm leaning towards keeping the original names. I actually had renamed some... like for instance, the SCI1.1 template game still had a class called class255_0. I renamed it to GUIControl, but then I ran into issues with documentation when I needed to refer to "GUIControl for the SCI1.1 template game, or Control for the SCI0 template game", so I figured it was best to keep names similar between SCI0 and SCI1.1 as much as possible (and so I changed it to "Control"). Admittedly, this may have been a unique case, as this was in the kernel documentation which applies to both SCI0 and SCI1.1.
Like, for backwards compatibility, we shouldn't really change the SCI0 names. And I think there is value in keeping SCI0 and SCI1.1 names the same as much as possible (of course, there are some that were different, like Act vs Actor). Then again... a new template is an opportunity to make things a little better, so...
Of note, the next version of the SCI 1.1 template game will change a filename: View.sc becomes Actor.sc. I never did like the View.sc filename, but I did this mainly because the original name Sierra used was Actor.sc (based on the debug opcodes in some SCI2 games).