Specifically, the thing-to-thing spatial relationships you’re likely to use in a game are containment,
The ball is in the box.
supporting,
The box is on the table.
incorporation,
A shipping label is part of the box.
carrying,
The player carries a black magic marker.
and wearing.
The player wears a woolen scarf.
As @mirality mentioned, these five relations are all mutually exclusive, because for efficiency reasons Inform internally keeps track of everything as a strict tree hierarchy, with a room at the top of each tree (or a thing, if it is nowhere
); then under that, all the things which are out in the open in that room (or contained in/supported by/carried by/worn by/part of that nowhere thing); then under each of those things, their individual contents; and so on down into deeply nested things.
Possession (If the player has the star sunglasses:
) is a superset of wearing and carrying together, so authors don’t need to worry about how a player (or other person) is using something wearable, just that they have it. And concealment is strange because you can’t just declare Now Bob conceals the dynamite.
; you have to define it indirectly, via a Rule for deciding the concealed possessions of Bob:
, instead.
The rest are mostly esoteric terms only used in the Standard Rules, although holder of
might be useful if you want to know exactly where a thing is located (openly in a room, or in/on/part of/held by some other thing), and encloses
is roughly that relation in reverse.
You can play around with that tree hierarchy directly by using the testing command abstract
:
>abstract redwood to me
makes the player carry the redwood tree,
>abstract lilypad to wardrobe
makes the wardrobe contain the lilypad,
>abstract Janet to mantelpiece
moves Janet on top of the mantel, and so on.
Technically, you could create a new spatial relation; but you’d need to explicitly unset all of the above five to set it, and then you’d need to explicitly move it around to whatever thing it was supposed to be attached to. Probably best to hijack one of the existing relations, and just write special-case rules for setting or unsetting it and displaying it to the player, as necessary. So handcuffs and manacles could be worn items that just can’t removed in the normal way, and probably so should permanent features on the player like tattoos (things being part of the player was a bit buggy a couple versions ago, and even if that’s apparently been fixed, worn items appear automatically in the inventory listing, while parts don’t), while new spatial relations between other things might best be modeled as incorporation.