I've made solid progress on the game engine today. I can now play complete sections of the script, and also drop into interactive mode to click on things, adventure game style. It has largely been coupled through the script system I mentioned yesterday, so all of the dialogue and cutscenes are completely data-driven from the start.
It's quite a powerful technique, and it reminds me of things like lettuce-style BDD tests. I can write a stage direction in the script, and later write the binding in code that implements that stage direction (and each character might have different stage directions implemented). This lets me completely separate the activities of designing the story and programming an adventure game. But the script system goes beyond just a list of steps: directives let me play arbitrary bits of script in response to events, so even looking at an object can trigger a dialogue between the characters.
I can't give too many screenshots without giving away bits of the story, so here's Ralph's walk cycle. Ralph is your buddy, who will drop in at various points and give you useful advice.