Ink port status: I've gotten through most of the tests around calling functions from outside the VM code. The next test is around setting non-existent variables, and I'm fairly sure I haven't covered that, so I'll try to do it tomorrow.
I'm noticing some gaps in coverage that are brought about by how I implemented things. For example, I'm explicitly managing the list of events to send to the variable observers, which means I should probably write a test around using variable observers with function calls "from the game".
Thinking over the stuff I'm missing, I'm probably going to have to review the public API when I'm done, and figure out how to address the many, many discrepancies that are going to show up.
Anyway, I've been spacing out once again, so I should call the entry now.