version 13/130803 by Jon Ingold
Section - Spawning relations
[ Spawning used to be a custom relation between g-windows, but Inform doesn't produce optimised code, meaning that rearranging windows was very slow. Piggy-backing onto the containment relation allows us to get the benefit of Inform's much better optimised code for that relation, resulting in a 30 times speed improvement! And by defining a new verb, old code doesn't need to be updated. ]
The verb to spawn (he spawns, they spawn, he spawned, it is spawned, he is spawning) implies the containment relation.
The verb to be the spawner of implies the containment relation.
[ There is a slight change here: previously these verbs would say that a window was ancestral to/descended from itself. I can't see when that would ever be desired however, so the change shouldn't impact anyone. ]
The verb to be ancestral to implies the enclosure relation.
The verb to be descended from implies the reversed enclosure relation.
Definition: a g-window is paternal rather than childless if it spawns something g-present.
To decide which g-window is the direct-parent of (g - a g-window):
decide on the holder of g;