I heard a rumor that possession was hard - specifically getting Inform to disambiguate [subject name heah]'s frob as a specific thing separate from [another subject’s name heah]'s frob.

The way I do it is to make possessive things part of their owner at creation, then rip them apart at beginning of play. This leverages Inform’s natural behavior of recognizing jane’s arm as a specific thing if it’s part of her. This process is a bit less ghoulish though:

[code]Cubicle Farm is a room. Sarah is a woman in Farm. Captain Howdy is a man in Farm.

an office chair is a kind of thing. One office chair is part of every person.

my office chair is an office chair. It is part of the player. The printed name is “your office chair”.

When play begins:
repeat with C running through office chairs:
now C is in the location of C.[/code]

I don’t know why LOOK says “there are two office chairs” because there are three total chairs according to TREE.

I think your code is creating an office chair that’s part of the player with “One office chair is part of every person” and then creating another office chair that’s part of the player with “my office chair is an office chair” etc. So, two office chairs wind up in the location. (Which is what TREE is telling me.)

Also, according to the index, the office chair that gets created with “One office chair is part of every person” actually gets the name “your office chair,” so you don’t even need to special-case that.

A note about this approach is that it just creates things named “Captain Howdy’s office chair” and the like. So the player can’t refer to “The captain’s office chair,” because “captain’s” isn’t a word in the object name. If you want to get fancy and allow things like “[way of referring to the subject that isn’t the subject’s last name heah]'s frob” then you need the Shadow Wolf extension, or anyway some after reading a command rule that breaks the 's into a separate word and lets you do stuff with it.