I agree you’re best off ignoring I7’s built in “gender” concepts and rolling your own, as you’re suggesting. The biggest difficulty is that Inform has already reserved the words male, female, and neuter, and it’s tricky to replace all the sections of code in the Standard Rules that mention them. (Possible, though… this really calls out for a nice “Gender” extension, which would properly work all this out, but until then…) The quickest way to get around this is by just using different words… or adopting some convention like beginning any gender identifier with an underscore.
We need a couple tricky Inform 7 concepts to implement this. First we want to create a relation that lets us connect people to any number of gender identities.
A gender identifier is a kind of value. The gender identifiers are _male, _female, _neutrois, and _genderqueer. [And whatever else you want to add.]
Identifying relates various people to various gender identifiers. The verb to identify as (he identifies as, they identify as, he identified as, it is identified as, he is identifying as) implies the identifying relation.
Bob is a person. Bob identifies as _neutrois. Jean is a person. Jean identifies as _female and _genderqueer.
Things get complex (natch) when pronouns come into play. What you’ll probably want is a rulebook for each type of pronoun (or at least, each type you need to use) that makes a decision as to what pronoun to use based on which identifiers a person is attached to. It might be a useful shortcut to name the rulebooks after the plural form, which is both gender-neutral and distinct for each pronoun (Custom Library Messages by Ron Newcomb takes advantage of this). For example, to say the 3rd person subject pronoun (he/she/it), we could make a rulebook called “we pronoun of”:
Instead of asking a person about something: say "Unfortunately, [we pronoun of noun] can't tell you anything new."
To say we pronoun of (subject - a thing): follow the we pronoun of rulebook for subject.
The we pronoun of rulebook is an object based rulebook. The we pronoun of rulebook has default success.
we pronoun of someone who identifies as _genderqueer: say "zhe".
we pronoun of someone who identifies as _neutrois: say "they".
we pronoun of someone who identifies as _male: say "he".
we pronoun of someone who identifies as _female: say "she".
This will pick the first rule in the order listed that matches, which might not always be what we what; we could replace these with more elaborate rules if, say, we wanted different behavior for someone with a more complex gender identity.
Of course, there are a number of other tricky English-related issues to deal with (such as writing “has” or “have” correctly based on plurality)… looking through the extension “Plurality by Emily Short” is a good way to think through how to deal with these issues, although you may not need all of these for your project depending on how much text needs to be procedurally vs. hand-generated.
(Note for anyone writing a future “Gender” extension (which may well be me eventually): it looks like bits of the Standard Rules that will need to be replaced include Section SR1/11 - People, Section SR1/12 - Animals, men and women, and Section SR1/16 - Inform 6 equivalents.)