Sadie – This is absolutely great. This is what I would have made if I could have.
When I wrote my extension, I ended up in the guts of the I6 code working out how to replace innards, and I did not have the time or energy to do more than the minimum I6 rewrite. In particular, I did not dig into the parser deep enough to figure out how to get it to recognize new words as pronouns. I see that you have done the extensive I6 rewriting, including the new tables which are necessary.
I was also much more focused on recognition of input from the user than on printing.
I’d like to see if I can rewrite everything from the City Park test from Gender Options, including the ship (which can be referred to by the player as “she” or “it” but text printed by the game uses “it”), to work with your code. I’m not quite sure how the interface on your extension works for stuff like this despite the documentation, but I’m going to give it a shot.
I have one more conceptual use case I’d like to test. A room with a single character, “Chris”, whose preferred pronouns are revealed partway through play – before the reveal, the game refers to them using they/them, but recognizes him & her when typed by the player (while recording them in order to keep track of the player’s unconscious assumptions). After the reveal, the game only accepts the preferred pronouns, but redirects other pronouns to a “You remember that’s not the right pronoun” message. It looks like this is close to being possible with your extension?
I will give one piece of advice from experience: don’t try to backport this to any version before 10.1. Although the actual relevant algorithms in Core Inform hasn’t changed in yonks, there have been tedious interface changes repeatedly which have required constant updating just to keep it compiling; you really don’t want to bother to try to backport it.
Oh. Also, problems with Z-machine are likely to be related to differing ARRAY format.
There’s some subtle but game-breaking low-level differences. I’d look there first when trying to get it working for Z-machine.