Our macro defines a direction object with a name based on the direction's room travel link property and the base class. So, DefineDirection(north, Compass) defines a direction object called 'northDirection' based on the CompassDirection class, with the link property 'north' and default travel connector 'noTravel'.
Note that we define a sorting order among the default directions as follows. First, we define several groups of related directions, which we put in a relative order: the compass directions, then the vertical directions, then the "relative" (in/out) directions, and finally the shipboard directions. Then, we order the directions within these groups. For the sortingOrder values, we use arbitrary integers with fairly wide separations, to leave plenty of room for custom game-specific directions to be added before, between, after, or within these pre-defined groups.
northDirection : CompassDirection