Implement and document %V escape so version only needs to be set once.
[open-adventure.git] / adventure.yaml
index 14a2ab963cc3212db7e66db18925748c903792d5..26c218573b9d8e14465cd1b929e2e496a726ec61 100644 (file)
@@ -6,12 +6,18 @@
 #
 # We define a bunch of YAML structures:
 #
-# vocabulary: Almost all the words the game knows - one of them (the
+# vocabulary: - This structure is unused, and will eventually be removed. -
+#    Almost all the words the game knows - one of them (the
 #    reservoir magic word) gets replaced with a randomly-generated
 #    cookie.  For each word there is a type (motion, action, object,
 #    or special) and a numeric value.  Multiple synonyms may have the
 #    same value.
 #
+# motions: Motion words, grouped into synonyms.
+#
+# actions: Action words, grouped into synonyms, and their corresponding
+#    default messages.
+#
 # hints: Each item contains a hint number, a hint label (used to
 #    generate the value macro for the hint) the number of turns he
 #    must be at the right loc(s) before triggering the hint, the
 #                    a named location) a speak (utter a named message), or
 #                    a special (branch to special case in movement code).
 #                    The conditional may be one of the following:
-#                      [pct N]       Roll a die, n% chance of success
-#                      [carry OBJ]   Must be carrying named object
-#                      [with OBJ]    Must be carrying or in room with
-#                      [not OBJ N]   Property of named OBJ must not be N
+#                      [pct, N]       Roll a die, n% chance of success
+#                      [carry, OBJ]   Must be carrying named object
+#                      [with, OBJ]    Must be carrying or in room with
+#                      [not, OBJ N]   Property of named OBJ must not be N.
+#                                     N may be numeric or a state label.
 #    All attributes are optional except the long description and
 #    travel. Order of locations is not significant.
 #
 # arbitrary_messages: These are arguments to rspeak(). Some spans of
-#    these messages need to be kept adjacent and ordered (for now).
-#    To see which, grep for rspeak() calls containing expressions with
-#    arithmetic.  Eventually, these will be pulled out into more appropriate
-#    data structures. Then ordering can be dropped, and gaps removed.
+#    these messages need to be kept adjacent and ordered (for now),
+#    though there are no depenencies on actual numbers left.  To see
+#    which, grep for rspeak() calls containing expressions with
+#    arithmetic.  Eventually, these will be pulled out into more
+#    appropriate data structures. Then ordering can be dropped.
 #
 # classes: Each item contains a point threshold and a message
 #    describing a classification of player.  Point thresholds must be
 #    Order doesn't matter; the logic simply tests every threshold on
 #    the assumption that turn counts never decrease nor skip values.
 #
-# object_descriptions: Each item contains a description for use in the
-#    inventory command and one or more messages describing the object
-#    in different states.  There is also a boolean "treasure"
-#    attribute, defaulting to false.  An pbject may have one or two
-#    start locations (the gate is an example of a two-location object;
-#    it can be accessed from above or below).  An object may also be
-#    flagged immovable, meaning it cannot be carried.  If a state
-#    message is a tuple then the first element is made the name of a
-#    #define viible to the code for the associayed state, numbered
-#    from zero upwards. If the inventory desription begins with "*"
-#    the object is dungeon furniture that cannot be taken or carried.
+# objects: Objects have attributes as follows...
+#      inventory:    A description for use in the inventory command.
+#      descriptions: Messages describing the object in different states.
+#                    If a state message is a tuple then the first element
+#                    is made the name of a #define visible to the code for
+#                    the associated state, numbered from zero upwards; it
+#                    is also a state label that can be used in travel-rule
+#                    'not' clauses.
+#       changes:     State-change messages to be emitted whenever the obect
+#                    *changes* to the (0-origin) state that is the index of the
+#                    message in this array.
+#       words:       The vocabulary word(s) referring to this object.
+#       treasure:    A boolean "treasure" used for point-scoring and pirate
+#                    snatches, defaulting to false.
+#       immovable:   An object may also be flagged
+#                    immovable, meaning it cannot be carried.
+#       locations:   An object may have one or two start locations (the gate
+#                    is an example of a two-location object; it can be accessed
+#                    from above or below).
 #
 # obituaries: Death messages and reincarnation queries.  Order is
 #    significant, they're used in succession as the player racks up
 #    deaths.
 #
-# These correspond to sections 1, 2, 4, 5, 6, 7, 9, 10, 11, 13, and 14 in
-# the old adventure.text format.  Sections 3 and 8 haven't moved
-# yet.  Section 12 was obsolete.
-#
 # Message strings may include certain special character sequences to
 # denote that the program must provide parameters to insert into a
 # message when the message is printed.  These sequences are:
 #      %9 = A 9-digit number
 #      %B = Variable number of blanks
 #      %! = The entire message should be suppressed
+#      %V = substitute program version string
 
-# There are duplicate keys in this vocabulary, that's why it can't be a normal
-# map.  You have to iterate through it looking for a match qualified by type.
-vocabulary: [
-    {word: "ROAD",  type: motion, value: 2},
-    {word: "HILL",  type: motion, value: 2},
-    {word: "ENTER", type: motion, value: 3},
-    {word: "UPSTR", type: motion, value: 4},
-    {word: "DOWNS", type: motion, value: 5},
-    {word: "FORES", type: motion, value: 6},
-    {word: "FORWA", type: motion, value: 7},
-    {word: "CONTI", type: motion, value: 7},
-    {word: "ONWAR", type: motion, value: 7},
-    {word: "BACK",  type: motion, value: 8},
-    {word: "RETUR", type: motion, value: 8},
-    {word: "RETRE", type: motion, value: 8},
-    {word: "VALLE", type: motion, value: 9},
-    {word: "STAIR", type: motion, value: 10},
-    {word: "OUT",   type: motion, value: 11},
-    {word: "OUTSI", type: motion, value: 11},
-    {word: "EXIT",  type: motion, value: 11},
-    {word: "LEAVE", type: motion, value: 11},
-    {word: "BUILD", type: motion, value: 12},
-    {word: "HOUSE", type: motion, value: 12},
-    {word: "GULLY", type: motion, value: 13},
-    {word: "STREA", type: motion, value: 14},
-    {word: "FORK",  type: motion, value: 15},
-    {word: "BED",   type: motion, value: 16},
-    {word: "CRAWL", type: motion, value: 17},
-    {word: "COBBL", type: motion, value: 18},
-    {word: "INWAR", type: motion, value: 19},
-    {word: "INSID", type: motion, value: 19},
-    {word: "IN",    type: motion, value: 19},
-    {word: "SURFA", type: motion, value: 20},
-    {word: "NULL",  type: motion, value: 21},
-    {word: "NOWHE", type: motion, value: 21},
-    {word: "DARK",  type: motion, value: 22},
-    {word: "PASSA", type: motion, value: 23},
-    {word: "TUNNE", type: motion, value: 23},
-    {word: "LOW",   type: motion, value: 24},
-    {word: "CANYO", type: motion, value: 25},
-    {word: "AWKWA", type: motion, value: 26},
-    {word: "GIANT", type: motion, value: 27},
-    {word: "VIEW",  type: motion, value: 28},
-    {word: "UPWAR", type: motion, value: 29},
-    {word: "UP",    type: motion, value: 29},
-    {word: "U",     type: motion, value: 29},
-    {word: "ABOVE", type: motion, value: 29},
-    {word: "ASCEN", type: motion, value: 29},
-    {word: "D",     type: motion, value: 30},
-    {word: "DOWNW", type: motion, value: 30},
-    {word: "DOWN",  type: motion, value: 30},
-    {word: "DESCE", type: motion, value: 30},
-    {word: "PIT",   type: motion, value: 31},
-    {word: "OUTDO", type: motion, value: 32},
-    {word: "CRACK", type: motion, value: 33},
-    {word: "STEPS", type: motion, value: 34},
-    {word: "DOME",  type: motion, value: 35},
-    {word: "LEFT",  type: motion, value: 36},
-    {word: "RIGHT", type: motion, value: 37},
-    {word: "HALL",  type: motion, value: 38},
-    {word: "JUMP",  type: motion, value: 39},
-    {word: "BARRE", type: motion, value: 40},
-    {word: "OVER",  type: motion, value: 41},
-    {word: "ACROS", type: motion, value: 42},
-    {word: "EAST",  type: motion, value: 43},
-    {word: "E",     type: motion, value: 43},
-    {word: "WEST",  type: motion, value: 44},
-    {word: "W",     type: motion, value: 44},
-    {word: "NORTH", type: motion, value: 45},
-    {word: "N",     type: motion, value: 45},
-    {word: "SOUTH", type: motion, value: 46},
-    {word: "S",     type: motion, value: 46},
-    {word: "NE",    type: motion, value: 47},
-    {word: "SE",    type: motion, value: 48},
-    {word: "SW",    type: motion, value: 49},
-    {word: "NW",    type: motion, value: 50},
-    {word: "DEBRI", type: motion, value: 51},
-    {word: "HOLE",  type: motion, value: 52},
-    {word: "WALL",  type: motion, value: 53},
-    {word: "BROKE", type: motion, value: 54},
-    {word: "Y2",    type: motion, value: 55},
-    {word: "CLIMB", type: motion, value: 56},
-    {word: "LOOK",  type: motion, value: 57},
-    {word: "EXAMI", type: motion, value: 57},
-    {word: "TOUCH", type: motion, value: 57},
-    {word: "DESCR", type: motion, value: 57},
-    {word: "FLOOR", type: motion, value: 58},
-    {word: "ROOM",  type: motion, value: 59},
-    {word: "SLIT",  type: motion, value: 60},
-    {word: "SLAB",  type: motion, value: 61},
-    {word: "SLABR", type: motion, value: 61},
-    {word: "XYZZY", type: motion, value: 62},
-    {word: "DEPRE", type: motion, value: 63},
-    {word: "ENTRA", type: motion, value: 64},
-    {word: "PLUGH", type: motion, value: 65},
-    {word: "SECRE", type: motion, value: 66},
-    {word: "CAVE",  type: motion, value: 67},
-    {word: "CROSS", type: motion, value: 69},
-    {word: "BEDQU", type: motion, value: 70},
-    {word: "PLOVE", type: motion, value: 71},
-    {word: "ORIEN", type: motion, value: 72},
-    {word: "CAVER", type: motion, value: 73},
-    {word: "SHELL", type: motion, value: 74},
-    {word: "RESER", type: motion, value: 75},
-    {word: "MAIN",  type: motion, value: 76},
-    {word: "OFFIC", type: motion, value: 76},
-    {word: "KEYS",  type: object, value: 1},
-    {word: "KEY",   type: object, value: 1},
-    {word: "LAMP",  type: object, value: 2},
-    {word: "LANTE", type: object, value: 2},
-    {word: "GRATE", type: object, value: 3},
-    {word: "CAGE",  type: object, value: 4},
-    {word: "ROD",   type: object, value: 5},
-    {word: "ROD",   type: object, value: 6}, # Must be next object after "real" rod
-    {word: "STEPS", type: object, value: 7},
-    {word: "BIRD",  type: object, value: 8},
-    {word: "DOOR",  type: object, value: 9},
-    {word: "PILLO", type: object, value: 10},
-    {word: "VELVE", type: object, value: 10},
-    {word: "SNAKE", type: object, value: 11},
-    {word: "FISSU", type: object, value: 12},
-    {word: "TABLE", type: object, value: 13},
-    {word: "CLAM",  type: object, value: 14},
-    {word: "OYSTE", type: object, value: 15},
-    {word: "MAGAZ", type: object, value: 16},
-    {word: "ISSUE", type: object, value: 16},
-    {word: "SPELU", type: object, value: 16},
-    {word: '"SPEL', type: object, value: 16},
-    {word: "DWARF", type: object, value: 17},
-    {word: "DWARV", type: object, value: 17},
-    {word: "KNIFE", type: object, value: 18},
-    {word: "KNIVE", type: object, value: 18},
-    {word: "FOOD",  type: object, value: 19},
-    {word: "RATIO", type: object, value: 19},
-    {word: "BOTTL", type: object, value: 20},
-    {word: "JAR",   type: object, value: 20},
-    {word: "WATER", type: object, value: 21},
-    {word: "H2O",   type: object, value: 21},
-    {word: "OIL",   type: object, value: 22},
-    {word: "MIRRO", type: object, value: 23},
-    {word: "PLANT", type: object, value: 24},
-    {word: "BEANS", type: object, value: 24},
-    {word: "PLANT", type: object, value: 25}, # Must be next object after "real" plant
-    {word: "STALA", type: object, value: 26},
-    {word: "SHADO", type: object, value: 27},
-    {word: "FIGUR", type: object, value: 27},
-    {word: "WINDO", type: object, value: 27}, # Same as figure
-    {word: "AXE",   type: object, value: 28},
-    {word: "DRAWI", type: object, value: 29},
-    {word: "PIRAT", type: object, value: 30},
-    {word: "GENIE", type: object, value: 30},
-    {word: "DJINN", type: object, value: 30},
-    {word: "DRAGO", type: object, value: 31},
-    {word: "CHASM", type: object, value: 32},
-    {word: "TROLL", type: object, value: 33},
-    {word: "TROLL", type: object, value: 34}, # Must be next object after "real" troll
-    {word: "BEAR",  type: object, value: 35},
-    {word: "MESSA", type: object, value: 36},
-    {word: "VOLCA", type: object, value: 37},
-    {word: "GEYSE", type: object, value: 37}, # Same as volcano
-    {word: "MACHI", type: object, value: 38},
-    {word: "VENDI", type: object, value: 38},
-    {word: "BATTE", type: object, value: 39},
-    {word: "CARPE", type: object, value: 40},
-    {word: "MOSS",  type: object, value: 40},
-    {word: "CURTA", type: object, value: 40}, # Same as carpet
-    {word: "OGRE",  type: object, value: 41},
-    {word: "URN",   type: object, value: 42},
-    {word: "CAVIT", type: object, value: 43},
-    {word: "BLOOD", type: object, value: 44},
-    {word: "RESER", type: object, value: 45}, # Verb overrides
-    {word: "APPEN", type: object, value: 46},
-    {word: "LEPOR", type: object, value: 46},
-    {word: "MUD",   type: object, value: 47},
-    {word: "NOTE",  type: object, value: 48},
-    {word: "SIGN",  type: object, value: 49},
-    {word: "GOLD",  type: object, value: 50},
-    {word: "NUGGE", type: object, value: 50},
-    {word: "DIAMO", type: object, value: 51},
-    {word: "SILVE", type: object, value: 52},
-    {word: "BARS",  type: object, value: 52},
-    {word: "JEWEL", type: object, value: 53},
-    {word: "COINS", type: object, value: 54},
-    {word: "CHEST", type: object, value: 55},
-    {word: "BOX",   type: object, value: 55},
-    {word: "TREAS", type: object, value: 55},
-    {word: "EGGS",  type: object, value: 56},
-    {word: "EGG",   type: object, value: 56},
-    {word: "NEST",  type: object, value: 56},
-    {word: "TRIDE", type: object, value: 57},
-    {word: "VASE",  type: object, value: 58},
-    {word: "MING",  type: object, value: 58},
-    {word: "SHARD", type: object, value: 58},
-    {word: "POTTE", type: object, value: 58},
-    {word: "EMERA", type: object, value: 59},
-    {word: "PLATI", type: object, value: 60},
-    {word: "PYRAM", type: object, value: 60},
-    {word: "PEARL", type: object, value: 61},
-    {word: "RUG",   type: object, value: 62},
-    {word: "PERSI", type: object, value: 62},
-    {word: "SPICE", type: object, value: 63},
-    {word: "CHAIN", type: object, value: 64},
-    {word: "RUBY",  type: object, value: 65},
-    {word: "JADE",  type: object, value: 66},
-    {word: "NECKL", type: object, value: 66},
-    {word: "AMBER", type: object, value: 67},
-    {word: "GEMST", type: object, value: 67},
-    {word: "SAPPH", type: object, value: 68},
-    {word: "EBONY", type: object, value: 69},
-    {word: "STATU", type: object, value: 69},
-    {word: "CARRY", type: action, value: 1},
-    {word: "TAKE",  type: action, value: 1},
-    {word: "KEEP",  type: action, value: 1},
-    {word: "CATCH", type: action, value: 1},
-    {word: "STEAL", type: action, value: 1},
-    {word: "CAPTU", type: action, value: 1},
-    {word: "GET",   type: action, value: 1},
-    {word: "TOTE",  type: action, value: 1},
-    {word: "SNARF", type: action, value: 1},
-    {word: "DROP",  type: action, value: 2},
-    {word: "RELEA", type: action, value: 2},
-    {word: "FREE",  type: action, value: 2},
-    {word: "DISCA", type: action, value: 2},
-    {word: "DUMP",  type: action, value: 2},
-    {word: "SAY",   type: action, value: 3},
-    {word: "CHANT", type: action, value: 3},
-    {word: "SING",  type: action, value: 3},
-    {word: "UTTER", type: action, value: 3},
-    {word: "MUMBL", type: action, value: 3},
-    {word: "UNLOC", type: action, value: 4},
-    {word: "OPEN",  type: action, value: 4},
-    {word: "NOTHI", type: action, value: 5},
-    {word: "LOCK",  type: action, value: 6},
-    {word: "CLOSE", type: action, value: 6},
-    {word: "LIGHT", type: action, value: 7},
-    {word: "ON",    type: action, value: 7},
-    {word: "EXTIN", type: action, value: 8},
-    {word: "OFF",   type: action, value: 8},
-    {word: "WAVE",  type: action, value: 9},
-    {word: "SHAKE", type: action, value: 9},
-    {word: "SWING", type: action, value: 9},
-    {word: "CALM",  type: action, value: 10},
-    {word: "PLACA", type: action, value: 10},
-    {word: "TAME",  type: action, value: 10},
-    {word: "WALK",  type: action, value: 11},
-    {word: "RUN",   type: action, value: 11},
-    {word: "TRAVE", type: action, value: 11},
-    {word: "GO",    type: action, value: 11},
-    {word: "PROCE", type: action, value: 11},
-    {word: "CONTI", type: action, value: 11},
-    {word: "EXPLO", type: action, value: 11},
-    {word: "FOLLO", type: action, value: 11},
-    {word: "TURN",  type: action, value: 11},
-    {word: "ATTAC", type: action, value: 12},
-    {word: "KILL",  type: action, value: 12},
-    {word: "FIGHT", type: action, value: 12},
-    {word: "HIT",   type: action, value: 12},
-    {word: "STRIK", type: action, value: 12},
-    {word: "SLAY",  type: action, value: 12},
-    {word: "POUR",  type: action, value: 13},
-    {word: "EAT",   type: action, value: 14},
-    {word: "DEVOU", type: action, value: 14},
-    {word: "DRINK", type: action, value: 15},
-    {word: "RUB",   type: action, value: 16},
-    {word: "THROW", type: action, value: 17},
-    {word: "TOSS",  type: action, value: 17},
-    {word: "QUIT",  type: action, value: 18},
-    {word: "FIND",  type: action, value: 19},
-    {word: "WHERE", type: action, value: 19},
-    {word: "INVEN", type: action, value: 20},
-    {word: "FEED",  type: action, value: 21},
-    {word: "FILL",  type: action, value: 22},
-    {word: "BLAST", type: action, value: 23},
-    {word: "DETON", type: action, value: 23},
-    {word: "IGNIT", type: action, value: 23},
-    {word: "BLOWU", type: action, value: 23},
-    {word: "SCORE", type: action, value: 24},
-    {word: "FEE",   type: action, value: 25},
-    {word: "FIE",   type: action, value: 25},
-    {word: "FOE",   type: action, value: 25},
-    {word: "FOO",   type: action, value: 25},
-    {word: "FUM",   type: action, value: 25},
-    {word: "BRIEF", type: action, value: 26},
-    {word: "READ",  type: action, value: 27},
-    {word: "PERUS", type: action, value: 27},
-    {word: "BREAK", type: action, value: 28},
-    {word: "SHATT", type: action, value: 28},
-    {word: "SMASH", type: action, value: 28},
-    {word: "WAKE",  type: action, value: 29},
-    {word: "DISTU", type: action, value: 29},
-    {word: "SUSPE", type: action, value: 30},
-    {word: "PAUSE", type: action, value: 30},
-    {word: "SAVE",  type: action, value: 30},
-    {word: "RESUM", type: action, value: 31},
-    {word: "RESTA", type: action, value: 31},
-    {word: "FLY",   type: action, value: 32},
-    {word: "LISTE", type: action, value: 33},
-    {word: "Z'ZZZ", type: action, value: 34}, # Gets replaced
-    {word: "FEE",   type: special, value: 1},
-    {word: "FIE",   type: special, value: 2},
-    {word: "FOE",   type: special, value: 3},
-    {word: "FOO",   type: special, value: 4},
-    {word: "FUM",   type: special, value: 5},
-    {word: "THANK", type: special, value: 13},
-    {word: "SESAM", type: special, value: 50},
-    {word: "OPENS", type: special, value: 50},
-    {word: "ABRA",  type: special, value: 50},
-    {word: "ABRAC", type: special, value: 50},
-    {word: "SHAZA", type: special, value: 50},
-    {word: "HOCUS", type: special, value: 50},
-    {word: "POCUS", type: special, value: 50},
-    {word: "HELP",  type: special, value: 51},
-    {word: "?",     type: special, value: 51},
-    {word: "NO",    type: special, value: 54},
-    {word: "TREE",  type: special, value: 64},
-    {word: "TREES", type: special, value: 64},
-    {word: "DIG",   type: special, value: 66},
-    {word: "EXCAV", type: special, value: 66},
-    {word: "LOST",  type: special, value: 68},
-    {word: "MIST",  type: special, value: 69},
-    {word: "FUCK",  type: special, value: 79},
-    {word: "STOP",  type: special, value: 139},
-    {word: "INFO",  type: special, value: 142},
-    {word: "INFOR", type: special, value: 142},
-    {word: "SWIM",  type: special, value: 147},
-    {word: "WIZAR", type: special, value: 246},
-    {word: "YES",   type: special, value: 271},
-    {word: "NEWS",  type: special, value: 275},
-]
+motions: !!omap
+- MOT_0:
+    words: !!null
+- HERE:
+    words: !!null
+- MOT_2:
+    words: ['road', 'hill']
+- ENTER:
+    words: ['enter']
+- MOT_4:
+    words: ['upstr']
+- MOT_5:
+    words: ['downs']
+- MOT_6:
+    words: ['fores']
+- FORWARD:
+    words: ['forwa', 'conti', 'onwar']
+- BACK:
+    words: ['back', 'retur', 'retre']
+- MOT_9:
+    words: ['valle']
+- MOT_10:
+    words: ['stair']
+- OUTSIDE:
+    words: ['out', 'outsi', 'exit', 'leave']
+- MOT_12:
+    words: ['build', 'house']
+- MOT_13:
+    words: ['gully']
+- STREAM:
+    words: ['strea']
+- MOT_15:
+    words: ['fork']
+- MOT_16:
+    words: ['bed']
+- CRAWL:
+    words: ['crawl']
+- MOT_18:
+    words: ['cobbl']
+- INSIDE:
+    words: ['inwar', 'insid', 'in']
+- MOT_20:
+    words: ['surfa']
+- NUL:
+    words: ['null', 'nowhe']
+- MOT_22:
+    words: ['dark']
+- MOT_23:
+    words: ['passa', 'tunne']
+- MOT_24:
+    words: ['low']
+- MOT_25:
+    words: ['canyo']
+- MOT_26:
+    words: ['awkwa']
+- MOT_27:
+    words: ['giant']
+- MOT_28:
+    words: ['view']
+- UP:
+    words: ['upwar', 'up', 'u', 'above', 'ascen']
+- DOWN:
+    words: ['d', 'downw', 'down', 'desce']
+- MOT_31:
+    words: ['pit']
+- MOT_32:
+    words: ['outdo']
+- MOT_33:
+    words: ['crack']
+- MOT_34:
+    words: ['steps']
+- MOT_35:
+    words: ['dome']
+- LEFT:
+    words: ['left']
+- RIGHT:
+    words: ['right']
+- MOT_38:
+    words: ['hall']
+- MOT_39:
+    words: ['jump']
+- MOT_40:
+    words: ['barre']
+- MOT_41:
+    words: ['over']
+- MOT_42:
+    words: ['acros']
+- EAST:
+    words: ['east', 'e']
+- WEST:
+    words: ['west', 'w']
+- MOT_45:
+    words: ['north', 'n']
+- MOT_46:
+    words: ['south', 's']
+- NE:
+    words: ['ne']
+- SE:
+    words: ['se']
+- SW:
+    words: ['sw']
+- NW:
+    words: ['nw']
+- MOT_51:
+    words: ['debri']
+- MOT_52:
+    words: ['hole']
+- MOT_53:
+    words: ['wall']
+- MOT_54:
+    words: ['broke']
+- MOT_55:
+    words: ['y2']
+- MOT_56:
+    words: ['climb']
+- LOOK:
+    words: ['l', 'x', 'look', 'exami', 'touch', 'descr']
+- MOT_58:
+    words: ['floor']
+- MOT_59:
+    words: ['room']
+- MOT_60:
+    words: ['slit']
+- MOT_61:
+    words: ['slab', 'slabr']
+- XYZZY:
+    words: ['xyzzy']
+- DPRSSN:
+    words: ['depre']
+- ENTRNC:
+    words: ['entra']
+- PLUGH:
+    words: ['plugh']
+- MOT_66:
+    words: ['secre']
+- CAVE:
+    words: ['cave']
+- MOT_68:
+    words: !!null
+- MOT_69:
+    words: ['cross']
+- BEDQUILT:
+    words: ['bedqu']
+- PLOVER:
+    words: ['plove']
+- FORWARD2:
+    words: ['orien']
+- FORWARD3:
+    words: ['caver']
+- FORWARD4:
+    words: ['shell']
+- FORWARD5:
+    words: ['reser']
+- FORWARD6:
+    words: ['main', 'offic']
+
+actions: !!omap
+- ACT_0:
+    message: !!null
+    words: !!null
+- CARRY:
+    message: ALREADY_CARRYING
+    words: ['g', 'carry', 'take', 'keep', 'catch', 'steal', 'captu', 'get', 'tote', 'snarf']
+- DROP:
+    message: ARENT_CARRYING
+    words: ['drop', 'relea', 'free', 'disca', 'dump']
+- SAY:
+    message: NO_MESSAGE
+    words: ['say', 'chant', 'sing', 'utter', 'mumbl']
+- UNLOCK:
+    message: NOT_LOCKABLE
+    words: ['unloc', 'open']
+- NOTHING:
+    message: NO_MESSAGE
+    words: ['z', 'nothi']
+- LOCK:
+    message: NOT_LOCKABLE
+    words: ['lock', 'close']
+- LIGHT:
+    message: DONT_UNDERSTAND
+    words: ['light', 'on']
+- EXTINGUISH:
+    message: DONT_UNDERSTAND
+    words: ['extin', 'off']
+- WAVE:
+    message: NOTHING_HAPPENS
+    words: ['wave', 'shake', 'swing']
+- TAME:
+    message: AM_GAME
+    words: ['calm', 'placa', 'tame']
+- GO:
+    message: WHERE_QUERY
+    words: ['walk', 'run', 'trave', 'go', 'proce', 'conti', 'explo', 'follo', 'turn']
+- ATTACK:
+    message: RIDICULOUS_ATTEMPT
+    words: ['attac', 'kill', 'fight', 'hit', 'strik', 'slay']
+- POUR:
+    message: ARENT_CARRYING
+    words: ['pour']
+- EAT:
+    message: RIDICULOUS_ATTEMPT
+    words: ['eat', 'devou']
+- DRINK:
+    message: STREAM_WATER
+    words: ['drink']
+- RUB:
+    message: RUB_NOGO
+    words: ['rub']
+- THROW:
+    message: ARENT_CARRYING
+    words: ['throw', 'toss']
+- QUIT:
+    message: HUH_MAN
+    words: ['quit']
+- FIND:
+    message: NEARBY
+    words: ['find', 'where']
+- INVENTORY:
+    message: NEARBY
+    words: ['i', 'inven']
+- FEED:
+    message: NO_EDIBLES
+    words: ['feed']
+- FILL:
+    message: CANT_FILL
+    words: ['fill']
+- BLAST:
+    message: REQUIRES_DYNAMITE
+    words: ['blast', 'deton', 'ignit', 'blowu']
+- SCORE:
+    message: HUH_MAN
+    words: ['score']
+- GIANTWORDS:
+    message: NOT_KNOWHOW
+    words: ['fee', 'fie', 'foe', 'foo', 'fum']
+- BRIEF:
+    message: ON_WHAT
+    words: ['brief']
+- READ:
+    message: DONT_UNDERSTAND
+    words: ['read', 'perus']
+- BREAK:
+    message: BEYOND_POWER
+    words: ['break', 'shatt', 'smash']
+- WAKE:
+    message: RIDICULOUS_ATTEMPT
+    words: ['wake', 'distu']
+- SAVE:
+    message: HUH_MAN
+    words: ['suspe', 'pause', 'save']
+- RESUME:
+    message: HUH_MAN
+    words: ['resum', 'resta']
+- FLY:
+    message: AM_GAME
+    words: ['fly']
+- LISTEN:
+    message: DONT_UNDERSTAND
+    words: ['liste']
+- PART:
+    message: NOTHING_HAPPENS
+    words: ['z''zzz']
+- ACT_35:
+    message: HUH_MAN
+    words: !!null
+
+specials: !!omap
+- SPC_0:
+    message: !!null
+    words: !!null
+- SPC_1:
+    message: !!null
+    words: ['fee']
+- SPC_2:
+    message: !!null
+    words: ['fie']
+- SPC_3:
+    message: !!null
+    words: ['foe']
+- SPC_4:
+    message: !!null
+    words: ['foo']
+- SPC_5:
+    message: !!null
+    words: ['fum']
+- SPC_13:
+    message: YOUR_WELCOME
+    words: ['thank']
+- SPC_50:
+    message: WORN_OUT
+    words: ['sesam', 'opens', 'abra', 'abrac', 'shaza', 'hocus', 'pocus']
+- SPC_51:
+    message: VOCAB_DESCRIPTION
+    words: ['help', '?']
+- SPC_54:
+    message: OK_MAN
+    words: ['no']
+- SPC_64:
+    message: FOREST_LOOK
+    words: ['tree', 'trees']
+- SPC_66:
+    message: DIGGING_FUTILE
+    words: ['dig', 'excav']
+- SPC_68:
+    message: IM_CONFUSED
+    words: ['lost']
+- SPC_69:
+    message: EXPLAIN_MIST
+    words: ['mist']
+- SPC_79:
+    message: WATCH_IT
+    words: ['fuck']
+- SPC_139:
+    message: STOP_UNKNOWN
+    words: ['stop']
+- SPC_142:
+    message: QUICK_START
+    words: ['info', 'infor']
+- SPC_147:
+    message: NOT_KNOWHOW
+    words: ['swim']
+- SPC_246:
+    message: WIZARDS_NODISTURB
+    words: ['wizar']
+- SPC_271:
+    message: GUESS_AGAIN
+    words: ['yes']
+- SPC_275:
+    message: ADVENTURE_NEWS
+    words: ['news']
+- SPC_276:
+    message: ADVENTURE_VERSION
+    words: ['versi']
 
-# FIXME: Hint texts shouldn't be in arbitrary_messages, but inlined here
 hints:
   - hint: &grate
       name: CAVE
       number: 1
       turns: 4
       penalty: 2
-      question: ENTRY_QUERY
-      hint: HARD_GRATE
+      question: 'Are you trying to get into the cave?'
+      hint: 'The grate is very solid and has a hardened steel lock.  You cannot\nenter without a key, and there are no keys nearby.  I would recommend\nlooking elsewhere for the keys.'
   - hint: &bird
       name: BIRD
       number: 2
       turns: 5
       penalty: 2
-      question: BIRD_QUERY
-      hint: SKITTISH_BIRD
+      question: 'Are you trying to catch the bird?'
+      hint: 'Something about you seems to be frightening the bird.  Perhaps you\nmight figure out what it is.'
   - hint: &snake
       name: SNAKE
       number: 3
       turns: 8
       penalty: 2
-      question: SNAKE_QUERY
-      hint: SNAKE_HINT
+      question: 'Are you trying to somehow deal with the snake?'
+      hint: 'You can''t kill the snake, or drive it away, or avoid it, or anything\nlike that.  There is a way to get by, but you don''t have the necessary\nresources right now.'
   - hint: &maze
       name: MAZE
       number: 4
       turns: 75
       penalty: 4
-      question: MAZE_HELP
-      hint: DROP_THINGS
+      question: 'Do you need help getting out of the maze?'
+      hint: 'You can make the passages look less alike by dropping things.'
   - hint: &dark
       name: DARK
       number: 5
       turns: 25
       penalty: 5
-      question: PLOVER_QUERY
-      hint: EXPLORE_HINT
+      question: 'Are you trying to explore beyond the plover room?'
+      hint: 'There is a way to explore that region without having to worry about\nfalling into a pit.  None of the objects available is immediately\nuseful in discovering the secret.'
   - hint: &witt
       name: WITT
       number: 6
       turns: 20
       penalty: 3
-      question: HELP_LEAVING
-      hint: NOGO_WEST
+      question: 'Do you need help getting out of here?'
+      hint: 'Don''t go west.'
   - hint: &urn
       name: CLIFF
       number: 7
       turns: 8
       penalty: 2
-      question: WONDERING_QUERY
-      hint: ADVANCED_SECTION
+      question: 'Are you wondering what to do here?'
+      hint: 'This section is quite advanced.  Find the cave first.'
   - hint: &forest
       name: WOODS
       number: 8
       turns: 25
       penalty: 2
-      question: FOREST_QUERY
-      hint: GO_EAST
+      question: 'Would you like to be shown out of the forest?'
+      hint: 'Go east ten times.  If that doesn''t get you out, then go south, then\nwest twice, then south.'
   - hint: &ogre
       name: OGRE
       number: 9
       turns: 10
       penalty: 4
-      question: OGRE_QUERY
-      hint: OGRE_CLUE
+      question: 'Do you need help dealing with the ogre?'
+      hint: 'There is nothing the presence of which will prevent you from defeating\nhim; thus it can''t hurt to fetch everything you possibly can.'
   - hint: &jade
       name: JADE
       number: 10
       turns: 1
       penalty: 4
-      question: MISSING_ONE
-      hint: NO_LOCATE
+      question: 'You''re missing only one other treasure.  Do you need help finding it?'
+      hint: 'Once you''ve found all the other treasures, it is no longer possible to\nlocate the one you''re now missing.'
 
 locations: !!omap
 - LOC_NOWHERE:
@@ -531,11 +547,11 @@ locations: !!omap
     conditions: {FLUID: true, ABOVE: true, LIT: true}
     sound: STREAM_GURGLES
     travel: [
-      {verbs: ['ROAD', 'WEST', 'UPWAR'], action: ["goto", LOC_HILL]},
-      {verbs: ['ENTER', 'BUILD', 'INWAR', 'EAST'], action: ["goto", LOC_BUILDING]},
-      {verbs: ['DOWNS', 'GULLY', 'STREA', 'SOUTH', 'D'], action: ["goto", LOC_VALLEY]},
-      {verbs: ['FORES', 'NORTH'], action: ["goto", LOC_FOREST1]},
-      {verbs: ['DEPRE'], action: ["goto", LOC_GRATE]},
+      {verbs: ['ROAD', 'WEST', 'UPWAR'], action: [goto, LOC_HILL]},
+      {verbs: ['ENTER', 'BUILD', 'INWAR', 'EAST'], action: [goto, LOC_BUILDING]},
+      {verbs: ['DOWNS', 'GULLY', 'STREA', 'SOUTH', 'D'], action: [goto, LOC_VALLEY]},
+      {verbs: ['FORES', 'NORTH'], action: [goto, LOC_FOREST1]},
+      {verbs: ['DEPRE'], action: [goto, LOC_GRATE]},
     ]
 - LOC_HILL:
     description:
@@ -543,10 +559,10 @@ locations: !!omap
       short: 'You''re at hill in road.'
     conditions: {ABOVE: true, LIT: true}
     travel: [
-      {verbs: ['BUILD', 'EAST'], action: ["goto", LOC_START]},
-      {verbs: ['WEST'], action: ["goto", LOC_ROADEND]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST20]},
-      {verbs: ['SOUTH', 'FORES'], action: ["goto", LOC_FOREST13]},
+      {verbs: ['BUILD', 'EAST'], action: [goto, LOC_START]},
+      {verbs: ['WEST'], action: [goto, LOC_ROADEND]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST20]},
+      {verbs: ['SOUTH', 'FORES'], action: [goto, LOC_FOREST13]},
       {verbs: ['D'], action: ["speak", WHICH_WAY]},
     ]
 - LOC_BUILDING:
@@ -556,10 +572,10 @@ locations: !!omap
     conditions: {FLUID: true, ABOVE: true, LIT: true}
     sound: STREAM_GURGLES
     travel: [
-      {verbs: ['OUT', 'OUTDO', 'WEST'], action: ["goto", LOC_START]},
-      {verbs: ['XYZZY'], action: ["goto", LOC_FOOF1]},
-      {verbs: ['PLUGH'], action: ["goto", LOC_FOOF3]},
-      {verbs: ['DOWNS', 'STREA'], action: ["goto", LOC_SEWER]},
+      {verbs: ['OUT', 'OUTDO', 'WEST'], action: [goto, LOC_START]},
+      {verbs: ['XYZZY'], action: [goto, LOC_FOOF1]},
+      {verbs: ['PLUGH'], action: [goto, LOC_FOOF3]},
+      {verbs: ['DOWNS', 'STREA'], action: [goto, LOC_SEWER]},
     ]
 - LOC_VALLEY:
     description:
@@ -568,11 +584,11 @@ locations: !!omap
     conditions: {FLUID: true, ABOVE: true, LIT: true}
     sound: STREAM_GURGLES
     travel: [
-      {verbs: ['UPSTR', 'BUILD', 'NORTH'], action: ["goto", LOC_START]},
-      {verbs: ['EAST', 'FORES'], action: ["goto", LOC_FOREST6]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST12]},
-      {verbs: ['DOWNS', 'SOUTH', 'D'], action: ["goto", LOC_SLIT]},
-      {verbs: ['DEPRE'], action: ["goto", LOC_GRATE]},
+      {verbs: ['UPSTR', 'BUILD', 'NORTH'], action: [goto, LOC_START]},
+      {verbs: ['EAST', 'FORES'], action: [goto, LOC_FOREST6]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST12]},
+      {verbs: ['DOWNS', 'SOUTH', 'D'], action: [goto, LOC_SLIT]},
+      {verbs: ['DEPRE'], action: [goto, LOC_GRATE]},
       {verbs: ['STREA'], action: ["speak", UPSTREAM_DOWNSTREAM]},
     ]
 - LOC_ROADEND:
@@ -581,11 +597,11 @@ locations: !!omap
       short: 'You''re at end of road.'
     conditions: {ABOVE: true, LIT: true}
     travel: [
-      {verbs: ['ROAD', 'EAST', 'UPWAR'], action: ["goto", LOC_HILL]},
-      {verbs: ['BUILD'], action: ["goto", LOC_START]},
-      {verbs: ['SOUTH', 'FORES'], action: ["goto", LOC_FOREST14]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST15]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST21]},
+      {verbs: ['ROAD', 'EAST', 'UPWAR'], action: [goto, LOC_HILL]},
+      {verbs: ['BUILD'], action: [goto, LOC_START]},
+      {verbs: ['SOUTH', 'FORES'], action: [goto, LOC_FOREST14]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST15]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST21]},
     ]
 - LOC_CLIFF:
     description:
@@ -594,9 +610,9 @@ locations: !!omap
     conditions: {ABOVE: true, NOBACK: true, LIT: true}
     hints: [*urn]
     travel: [
-      {verbs: ['SOUTH', 'FORES'], action: ["goto", LOC_FOREST17]},
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST19]},
-      {verbs: ['JUMP'], action: ["goto", LOC_NOMAKE]},
+      {verbs: ['SOUTH', 'FORES'], action: [goto, LOC_FOREST17]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST19]},
+      {verbs: ['JUMP'], action: [goto, LOC_NOMAKE]},
     ]
 - LOC_SLIT:
     description:
@@ -605,11 +621,11 @@ locations: !!omap
     conditions: {FLUID: true, ABOVE: true, LIT: true}
     sound: STREAM_GURGLES
     travel: [
-      {verbs: ['BUILD'], action: ["goto", LOC_START]},
-      {verbs: ['UPSTR', 'NORTH'], action: ["goto", LOC_VALLEY]},
-      {verbs: ['EAST', 'FORES'], action: ["goto", LOC_FOREST6]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST10]},
-      {verbs: ['DOWNS', 'BED', 'SOUTH', 'DEPRE'], action: ["goto", LOC_GRATE]},
+      {verbs: ['BUILD'], action: [goto, LOC_START]},
+      {verbs: ['UPSTR', 'NORTH'], action: [goto, LOC_VALLEY]},
+      {verbs: ['EAST', 'FORES'], action: [goto, LOC_FOREST6]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST10]},
+      {verbs: ['DOWNS', 'BED', 'SOUTH', 'DEPRE'], action: [goto, LOC_GRATE]},
       {verbs: ['SLIT', 'STREA', 'D', 'INWAR', 'ENTER'], action: ["speak", DONT_FIT]},
     ]
 - LOC_GRATE:
@@ -619,12 +635,12 @@ locations: !!omap
     conditions: {ABOVE: true, LIT: true}
     hints: [*grate, *jade]
     travel: [
-      {verbs: ['EAST', 'FORES'], action: ["goto", LOC_FOREST7]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST10]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST9]},
-      {verbs: ['BUILD'], action: ["goto", LOC_START]},
-      {verbs: ['UPSTR', 'GULLY', 'NORTH'], action: ["goto", LOC_SLIT]},
-      {verbs: ['ENTER', 'INWAR', 'D'], cond: [not OBJ_3 0], action: ["goto", LOC_BELOWGRATE]},
+      {verbs: ['EAST', 'FORES'], action: [goto, LOC_FOREST7]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST10]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST9]},
+      {verbs: ['BUILD'], action: [goto, LOC_START]},
+      {verbs: ['UPSTR', 'GULLY', 'NORTH'], action: [goto, LOC_SLIT]},
+      {verbs: ['ENTER', 'INWAR', 'D'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_BELOWGRATE]},
       {verbs: ['ENTER'], action: ["speak", GRATE_NOWAY]},
     ]
 - LOC_BELOWGRATE:
@@ -633,11 +649,11 @@ locations: !!omap
       short: 'You''re below the grate.'
     conditions: {LIT: true}
     travel: [
-      {verbs: ['OUT', 'UPWAR'], cond: [not OBJ_3 0], action: ["goto", LOC_GRATE]},
+      {verbs: ['OUT', 'UPWAR'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
       {verbs: ['OUT'], action: ["speak", GRATE_NOWAY]},
-      {verbs: ['CRAWL', 'COBBL', 'INWAR', 'WEST'], action: ["goto", LOC_COBBLE]},
-      {verbs: ['PIT'], action: ["goto", LOC_PITTOP]},
-      {verbs: ['DEBRI'], action: ["goto", LOC_DEBRIS]},
+      {verbs: ['CRAWL', 'COBBL', 'INWAR', 'WEST'], action: [goto, LOC_COBBLE]},
+      {verbs: ['PIT'], action: [goto, LOC_PITTOP]},
+      {verbs: ['DEBRI'], action: [goto, LOC_DEBRIS]},
     ]
 - LOC_COBBLE:
     description:
@@ -645,9 +661,9 @@ locations: !!omap
       short: 'You''re in cobble crawl.'
     conditions: {LIT: true}
     travel: [
-      {verbs: ['OUT', 'SURFA', 'NULL', 'EAST'], action: ["goto", LOC_BELOWGRATE]},
-      {verbs: ['INWAR', 'DARK', 'WEST', 'DEBRI'], action: ["goto", LOC_DEBRIS]},
-      {verbs: ['PIT'], action: ["goto", LOC_PITTOP]},
+      {verbs: ['OUT', 'SURFA', 'NULL', 'EAST'], action: [goto, LOC_BELOWGRATE]},
+      {verbs: ['INWAR', 'DARK', 'WEST', 'DEBRI'], action: [goto, LOC_DEBRIS]},
+      {verbs: ['PIT'], action: [goto, LOC_PITTOP]},
     ]
 - LOC_DEBRIS:
     description:
@@ -655,12 +671,12 @@ locations: !!omap
       short: 'You''re in debris room.'
     conditions: {}
     travel: [
-      {verbs: ['DEPRE'], cond: [not OBJ_3 0], action: ["goto", LOC_GRATE]},
-      {verbs: ['ENTRA'], action: ["goto", LOC_BELOWGRATE]},
-      {verbs: ['CRAWL', 'COBBL', 'PASSA', 'LOW', 'EAST'], action: ["goto", LOC_COBBLE]},
-      {verbs: ['CANYO', 'INWAR', 'UPWAR', 'WEST'], action: ["goto", LOC_AWKWARD]},
-      {verbs: ['XYZZY'], action: ["goto", LOC_FOOF2]},
-      {verbs: ['PIT'], action: ["goto", LOC_PITTOP]},
+      {verbs: ['DEPRE'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
+      {verbs: ['ENTRA'], action: [goto, LOC_BELOWGRATE]},
+      {verbs: ['CRAWL', 'COBBL', 'PASSA', 'LOW', 'EAST'], action: [goto, LOC_COBBLE]},
+      {verbs: ['CANYO', 'INWAR', 'UPWAR', 'WEST'], action: [goto, LOC_AWKWARD]},
+      {verbs: ['XYZZY'], action: [goto, LOC_FOOF2]},
+      {verbs: ['PIT'], action: [goto, LOC_PITTOP]},
     ]
 - LOC_AWKWARD:
     description:
@@ -668,11 +684,11 @@ locations: !!omap
       short: !!null
     conditions: {}
     travel: [
-      {verbs: ['DEPRE'], cond: [not OBJ_3 0], action: ["goto", LOC_GRATE]},
-      {verbs: ['ENTRA'], action: ["goto", LOC_BELOWGRATE]},
-      {verbs: ['D', 'EAST', 'DEBRI'], action: ["goto", LOC_DEBRIS]},
-      {verbs: ['INWAR', 'UPWAR', 'WEST'], action: ["goto", LOC_BIRD]},
-      {verbs: ['PIT'], action: ["goto", LOC_PITTOP]},
+      {verbs: ['DEPRE'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
+      {verbs: ['ENTRA'], action: [goto, LOC_BELOWGRATE]},
+      {verbs: ['D', 'EAST', 'DEBRI'], action: [goto, LOC_DEBRIS]},
+      {verbs: ['INWAR', 'UPWAR', 'WEST'], action: [goto, LOC_BIRD]},
+      {verbs: ['PIT'], action: [goto, LOC_PITTOP]},
     ]
 - LOC_BIRD:
     description:
@@ -681,11 +697,11 @@ locations: !!omap
     conditions: {}
     hints: [*bird] 
     travel: [
-      {verbs: ['DEPRE'], cond: [not OBJ_3 0], action: ["goto", LOC_GRATE]},
-      {verbs: ['ENTRA'], action: ["goto", LOC_BELOWGRATE]},
-      {verbs: ['DEBRI'], action: ["goto", LOC_DEBRIS]},
-      {verbs: ['CANYO', 'EAST'], action: ["goto", LOC_AWKWARD]},
-      {verbs: ['PASSA', 'PIT', 'WEST'], action: ["goto", LOC_PITTOP]},
+      {verbs: ['DEPRE'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
+      {verbs: ['ENTRA'], action: [goto, LOC_BELOWGRATE]},
+      {verbs: ['DEBRI'], action: [goto, LOC_DEBRIS]},
+      {verbs: ['CANYO', 'EAST'], action: [goto, LOC_AWKWARD]},
+      {verbs: ['PASSA', 'PIT', 'WEST'], action: [goto, LOC_PITTOP]},
     ]
 - LOC_PITTOP:
     description:
@@ -693,13 +709,13 @@ locations: !!omap
       short: 'You''re at top of small pit.'
     conditions: {}
     travel: [
-      {verbs: ['DEPRE'], cond: [not OBJ_3 0], action: ["goto", LOC_GRATE]},
-      {verbs: ['ENTRA'], action: ["goto", LOC_BELOWGRATE]},
-      {verbs: ['DEBRI'], action: ["goto", LOC_DEBRIS]},
-      {verbs: ['PASSA', 'EAST'], action: ["goto", LOC_BIRD]},
-      {verbs: ['D', 'PIT', 'STEPS'], cond: [carry OBJ_50], action: ["goto", LOC_NECKBROKE]},
-      {verbs: ['D'], action: ["goto", LOC_MISTHALL]},
-      {verbs: ['CRACK', 'WEST'], action: ["goto", LOC_CRACK]},
+      {verbs: ['DEPRE'], cond: [not, GRATE, GRATE_CLOSED], action: [goto, LOC_GRATE]},
+      {verbs: ['ENTRA'], action: [goto, LOC_BELOWGRATE]},
+      {verbs: ['DEBRI'], action: [goto, LOC_DEBRIS]},
+      {verbs: ['PASSA', 'EAST'], action: [goto, LOC_BIRD]},
+      {verbs: ['D', 'PIT', 'STEPS'], cond: [carry, NUGGET], action: [goto, LOC_NECKBROKE]},
+      {verbs: ['D'], action: [goto, LOC_MISTHALL]},
+      {verbs: ['CRACK', 'WEST'], action: [goto, LOC_CRACK]},
     ]
 - LOC_MISTHALL:
     description:
@@ -709,12 +725,12 @@ locations: !!omap
     hints: [*jade]
     sound: WIND_WHISTLES
     travel: [
-      {verbs: ['LEFT', 'SOUTH'], action: ["goto", LOC_NUGGET]},
-      {verbs: ['FORWA', 'HALL', 'WEST'], action: ["goto", LOC_EASTBANK]},
-      {verbs: ['STAIR', 'D', 'NORTH'], action: ["goto", LOC_KINGHALL]},
-      {verbs: ['UPWAR', 'PIT', 'STEPS', 'DOME', 'PASSA', 'EAST'], cond: [carry OBJ_50], action: ["goto", LOC_DOME]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_PITTOP]},
-      {verbs: ['Y2'], action: ["goto", LOC_JUMBLE]},
+      {verbs: ['LEFT', 'SOUTH'], action: [goto, LOC_NUGGET]},
+      {verbs: ['FORWA', 'HALL', 'WEST'], action: [goto, LOC_EASTBANK]},
+      {verbs: ['STAIR', 'D', 'NORTH'], action: [goto, LOC_KINGHALL]},
+      {verbs: ['UPWAR', 'PIT', 'STEPS', 'DOME', 'PASSA', 'EAST'], cond: [carry, NUGGET], action: [goto, LOC_DOME]},
+      {verbs: ['UPWAR'], action: [goto, LOC_PITTOP]},
+      {verbs: ['Y2'], action: [goto, LOC_JUMBLE]},
     ]
 - LOC_CRACK:
     description:
@@ -722,7 +738,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_PITTOP]},
+      {verbs: [], action: [goto, LOC_PITTOP]},
     ]
 - LOC_EASTBANK:
     description:
@@ -730,11 +746,11 @@ locations: !!omap
       short: 'You''re on east bank of fissure.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['HALL', 'EAST'], action: ["goto", LOC_MISTHALL]},
-      {verbs: ['JUMP'], cond: [not OBJ_12 0], action: ["speak", CROSS_BRIDGE]},
-      {verbs: ['FORWA'], cond: [not OBJ_12 1], action: ["goto", LOC_NOMAKE]},
-      {verbs: ['OVER', 'ACROS', 'WEST', 'CROSS'], cond: [not OBJ_12 1], action: ["speak", NO_CROSS]},
-      {verbs: ['OVER'], action: ["goto", LOC_WESTBANK]},
+      {verbs: ['HALL', 'EAST'], action: [goto, LOC_MISTHALL]},
+      {verbs: ['JUMP'], cond: [not, FISSURE, UNBRIDGED], action: ["speak", CROSS_BRIDGE]},
+      {verbs: ['FORWA'], cond: [not, FISSURE, BRIDGED], action: [goto, LOC_NOMAKE]},
+      {verbs: ['OVER', 'ACROS', 'WEST', 'CROSS'], cond: [not, FISSURE, BRIDGED], action: ["speak", NO_CROSS]},
+      {verbs: ['OVER'], action: [goto, LOC_WESTBANK]},
     ]
 - LOC_NUGGET:
     description:
@@ -742,7 +758,7 @@ locations: !!omap
       short: 'You''re in nugget-of-gold room.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['HALL', 'OUT', 'NORTH'], action: ["goto", LOC_MISTHALL]},
+      {verbs: ['HALL', 'OUT', 'NORTH'], action: [goto, LOC_MISTHALL]},
     ]
 - LOC_KINGHALL:
     description:
@@ -751,14 +767,14 @@ locations: !!omap
     conditions: {DEEP: true}
     hints: [*snake]
     travel: [
-      {verbs: ['STAIR', 'UPWAR', 'EAST'], action: ["goto", LOC_MISTHALL]},
-      {verbs: ['NORTH', 'RIGHT'], cond: [not OBJ_11 0], action: ["goto", LOC_FLOORHOLE]},
-      {verbs: ['SOUTH', 'LEFT'], cond: [not OBJ_11 0], action: ["goto", LOC_SOUTHSIDE]},
-      {verbs: ['WEST', 'FORWA'], cond: [not OBJ_11 0], action: ["goto", LOC_WESTSIDE]},
-      {verbs: ['NORTH'], action: ["goto", LOC_SNAKEBLOCK]},
-      {verbs: ['SW'], cond: [pct 35], action: ["goto", LOC_SECRET3]},
-      {verbs: ['SW'], cond: [with OBJ_11], action: ["goto", LOC_SNAKEBLOCK]},
-      {verbs: ['SECRE'], action: ["goto", LOC_SECRET3]},
+      {verbs: ['STAIR', 'UPWAR', 'EAST'], action: [goto, LOC_MISTHALL]},
+      {verbs: ['NORTH', 'RIGHT'], cond: [not, SNAKE, SNAKE_BLOCKS], action: [goto, LOC_FLOORHOLE]},
+      {verbs: ['SOUTH', 'LEFT'], cond: [not, SNAKE, SNAKE_BLOCKS], action: [goto, LOC_SOUTHSIDE]},
+      {verbs: ['WEST', 'FORWA'], cond: [not, SNAKE, SNAKE_BLOCKS], action: [goto, LOC_WESTSIDE]},
+      {verbs: ['NORTH'], action: [goto, LOC_SNAKEBLOCK]},
+      {verbs: ['SW'], cond: [pct, 35], action: [goto, LOC_SECRET3]},
+      {verbs: ['SW'], cond: ["with", SNAKE], action: [goto, LOC_SNAKEBLOCK]},
+      {verbs: ['SECRE'], action: [goto, LOC_SECRET3]},
     ]
 - LOC_NECKBROKE:
     description:
@@ -766,7 +782,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_NOWHERE]},
+      {verbs: [], action: [goto, LOC_NOWHERE]},
     ]
 - LOC_NOMAKE:
     description:
@@ -774,7 +790,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_NOWHERE]},
+      {verbs: [], action: [goto, LOC_NOWHERE]},
     ]
 - LOC_DOME:
     description:
@@ -782,7 +798,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_MISTHALL]},
+      {verbs: [], action: [goto, LOC_MISTHALL]},
     ]
 - LOC_WESTEND:
     description:
@@ -790,9 +806,9 @@ locations: !!omap
       short: 'You''re at west end of Twopit Room.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['EAST', 'ACROS'], action: ["goto", LOC_EASTEND]},
-      {verbs: ['WEST', 'SLAB'], action: ["goto", LOC_SLAB]},
-      {verbs: ['D', 'PIT'], action: ["goto", LOC_WESTPIT]},
+      {verbs: ['EAST', 'ACROS'], action: [goto, LOC_EASTEND]},
+      {verbs: ['WEST', 'SLAB'], action: [goto, LOC_SLAB]},
+      {verbs: ['D', 'PIT'], action: [goto, LOC_WESTPIT]},
       {verbs: ['HOLE'], action: ["speak", TOO_FAR]},
     ]
 - LOC_EASTPIT:
@@ -801,7 +817,7 @@ locations: !!omap
       short: 'You''re in east pit.'
     conditions: {FLUID: true, DEEP: true, OILY: true}
     travel: [
-      {verbs: ['UPWAR', 'OUT'], action: ["goto", LOC_EASTEND]},
+      {verbs: ['UPWAR', 'OUT'], action: [goto, LOC_EASTEND]},
     ]
 - LOC_WESTPIT:
     description:
@@ -809,9 +825,9 @@ locations: !!omap
       short: 'You''re in west pit.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['UPWAR', 'OUT'], action: ["goto", LOC_WESTEND]},
-      {verbs: ['CLIMB'], cond: [not OBJ_24 2], action: ["goto", LOC_BUILDING1]},
-      {verbs: ['CLIMB'], action: ["goto", LOC_CLIMBSTALK]},
+      {verbs: ['UPWAR', 'OUT'], action: [goto, LOC_WESTEND]},
+      {verbs: ['CLIMB'], cond: [not, PLANT, 2], action: [goto, LOC_BUILDING1]},
+      {verbs: ['CLIMB'], action: [goto, LOC_CLIMBSTALK]},
     ]
 - LOC_CLIMBSTALK:
     description:
@@ -819,7 +835,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_NARROW]},
+      {verbs: [], action: [goto, LOC_NARROW]},
     ]
 - LOC_WESTBANK:
     description:
@@ -827,12 +843,12 @@ locations: !!omap
       short: 'You''re on west bank of fissure.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['JUMP'], cond: [not OBJ_12 0], action: ["speak", CROSS_BRIDGE]},
-      {verbs: ['FORWA'], cond: [not OBJ_12 1], action: ["goto", LOC_NOMAKE]},
-      {verbs: ['OVER', 'ACROS', 'EAST', 'CROSS'], cond: [not OBJ_12 1], action: ["speak", NO_CROSS]},
-      {verbs: ['OVER'], action: ["goto", LOC_EASTBANK]},
-      {verbs: ['NORTH'], action: ["goto", LOC_PARALLEL1]},
-      {verbs: ['WEST'], action: ["goto", LOC_MISTWEST]},
+      {verbs: ['JUMP'], cond: [not, FISSURE, UNBRIDGED], action: ["speak", CROSS_BRIDGE]},
+      {verbs: ['FORWA'], cond: [not, FISSURE, BRIDGED], action: [goto, LOC_NOMAKE]},
+      {verbs: ['OVER', 'ACROS', 'EAST', 'CROSS'], cond: [not, FISSURE, BRIDGED], action: ["speak", NO_CROSS]},
+      {verbs: ['OVER'], action: [goto, LOC_EASTBANK]},
+      {verbs: ['NORTH'], action: [goto, LOC_PARALLEL1]},
+      {verbs: ['WEST'], action: [goto, LOC_MISTWEST]},
     ]
 - LOC_FLOORHOLE:
     description:
@@ -840,9 +856,9 @@ locations: !!omap
       short: 'You''re in n/s passage above e/w passage.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['HALL', 'OUT', 'SOUTH'], action: ["goto", LOC_KINGHALL]},
-      {verbs: ['NORTH', 'Y2'], action: ["goto", LOC_Y2]},
-      {verbs: ['D', 'HOLE'], action: ["goto", LOC_BROKEN]},
+      {verbs: ['HALL', 'OUT', 'SOUTH'], action: [goto, LOC_KINGHALL]},
+      {verbs: ['NORTH', 'Y2'], action: [goto, LOC_Y2]},
+      {verbs: ['D', 'HOLE'], action: [goto, LOC_BROKEN]},
     ]
 - LOC_SOUTHSIDE:
     description:
@@ -850,7 +866,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['HALL', 'OUT', 'NORTH'], action: ["goto", LOC_KINGHALL]},
+      {verbs: ['HALL', 'OUT', 'NORTH'], action: [goto, LOC_KINGHALL]},
     ]
 - LOC_WESTSIDE:
     description:
@@ -858,8 +874,8 @@ locations: !!omap
       short: 'You''re in the west side chamber.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['HALL', 'OUT', 'EAST'], action: ["goto", LOC_KINGHALL]},
-      {verbs: ['WEST', 'UPWAR'], action: ["goto", LOC_CROSSOVER]},
+      {verbs: ['HALL', 'OUT', 'EAST'], action: [goto, LOC_KINGHALL]},
+      {verbs: ['WEST', 'UPWAR'], action: [goto, LOC_CROSSOVER]},
     ]
 - LOC_BUILDING1:
     description:
@@ -867,8 +883,8 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], cond: [not OBJ_24 1], action: ["goto", LOC_NOCLIMB]},
-      {verbs: [], action: ["goto", LOC_PLANTTOP]},
+      {verbs: [], cond: [not, PLANT, 1], action: [goto, LOC_NOCLIMB]},
+      {verbs: [], action: [goto, LOC_PLANTTOP]},
     ]
 - LOC_SNAKEBLOCK:
     description:
@@ -876,7 +892,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_KINGHALL]},
+      {verbs: [], action: [goto, LOC_KINGHALL]},
     ]
 - LOC_Y2:
     description:
@@ -884,12 +900,12 @@ locations: !!omap
       short: 'You''re at "Y2".'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['PLUGH'], action: ["goto", LOC_FOOF4]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FLOORHOLE]},
-      {verbs: ['EAST', 'WALL', 'BROKE'], action: ["goto", LOC_JUMBLE]},
-      {verbs: ['WEST'], action: ["goto", LOC_WINDOW1]},
-      {verbs: ['PLOVE'], cond: [carry OBJ_59], action: ["special", 2]},
-      {verbs: ['PLOVE'], action: ["goto", LOC_FOOF5]},
+      {verbs: ['PLUGH'], action: [goto, LOC_FOOF4]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FLOORHOLE]},
+      {verbs: ['EAST', 'WALL', 'BROKE'], action: [goto, LOC_JUMBLE]},
+      {verbs: ['WEST'], action: [goto, LOC_WINDOW1]},
+      {verbs: ['PLOVE'], cond: [carry, EMERALD], action: ["special", 2]},
+      {verbs: ['PLOVE'], action: [goto, LOC_FOOF5]},
     ]
 - LOC_JUMBLE:
     description:
@@ -897,8 +913,8 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['D', 'Y2'], action: ["goto", LOC_Y2]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_MISTHALL]},
+      {verbs: ['D', 'Y2'], action: [goto, LOC_Y2]},
+      {verbs: ['UPWAR'], action: [goto, LOC_MISTHALL]},
     ]
 - LOC_WINDOW1:
     description:
@@ -906,8 +922,8 @@ locations: !!omap
       short: 'You''re at window on pit.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['EAST', 'Y2'], action: ["goto", LOC_Y2]},
-      {verbs: ['JUMP'], action: ["goto", LOC_NECKBROKE]},
+      {verbs: ['EAST', 'Y2'], action: [goto, LOC_Y2]},
+      {verbs: ['JUMP'], action: [goto, LOC_NECKBROKE]},
     ]
 - LOC_BROKEN:
     description:
@@ -915,10 +931,10 @@ locations: !!omap
       short: 'You''re in dirty passage.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['EAST', 'CRAWL'], action: ["goto", LOC_SMALLPITBRINK]},
-      {verbs: ['UPWAR', 'HOLE'], action: ["goto", LOC_FLOORHOLE]},
-      {verbs: ['WEST'], action: ["goto", LOC_DUSTY]},
-      {verbs: ['BEDQU'], action: ["goto", LOC_BEDQUILT]},
+      {verbs: ['EAST', 'CRAWL'], action: [goto, LOC_SMALLPITBRINK]},
+      {verbs: ['UPWAR', 'HOLE'], action: [goto, LOC_FLOORHOLE]},
+      {verbs: ['WEST'], action: [goto, LOC_DUSTY]},
+      {verbs: ['BEDQU'], action: [goto, LOC_BEDQUILT]},
     ]
 - LOC_SMALLPITBRINK:
     description:
@@ -926,8 +942,8 @@ locations: !!omap
       short: 'You''re at brink of small pit.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['WEST', 'CRAWL'], action: ["goto", LOC_BROKEN]},
-      {verbs: ['D', 'PIT', 'CLIMB'], action: ["goto", LOC_SMALLPIT]},
+      {verbs: ['WEST', 'CRAWL'], action: [goto, LOC_BROKEN]},
+      {verbs: ['D', 'PIT', 'CLIMB'], action: [goto, LOC_SMALLPIT]},
     ]
 - LOC_SMALLPIT:
     description:
@@ -936,7 +952,7 @@ locations: !!omap
     conditions: {FLUID: true, DEEP: true}
     sound: STREAM_GURGLES
     travel: [
-      {verbs: ['CLIMB', 'UPWAR', 'OUT'], action: ["goto", LOC_SMALLPITBRINK]},
+      {verbs: ['CLIMB', 'UPWAR', 'OUT'], action: [goto, LOC_SMALLPITBRINK]},
       {verbs: ['SLIT', 'STREA', 'D', 'UPSTR', 'DOWNS', 'ENTER', 'INWAR'], action: ["speak", DONT_FIT]},
     ]
 - LOC_DUSTY:
@@ -945,9 +961,9 @@ locations: !!omap
       short: 'You''re in dusty rock room.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['EAST', 'PASSA'], action: ["goto", LOC_BROKEN]},
-      {verbs: ['D', 'HOLE', 'FLOOR'], action: ["goto", LOC_COMPLEX]},
-      {verbs: ['BEDQU'], action: ["goto", LOC_BEDQUILT]},
+      {verbs: ['EAST', 'PASSA'], action: [goto, LOC_BROKEN]},
+      {verbs: ['D', 'HOLE', 'FLOOR'], action: [goto, LOC_COMPLEX]},
+      {verbs: ['BEDQU'], action: [goto, LOC_BEDQUILT]},
     ]
 - LOC_PARALLEL1:
     description:
@@ -955,7 +971,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_MISTWEST]},
+      {verbs: [], action: [goto, LOC_MISTWEST]},
     ]
 - LOC_MISTWEST:
     description:
@@ -963,10 +979,10 @@ locations: !!omap
       short: 'You''re at west end of Hall of Mists.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SOUTH', 'UPWAR', 'PASSA', 'CLIMB'], action: ["goto", LOC_ALIKE1]},
-      {verbs: ['EAST'], action: ["goto", LOC_WESTBANK]},
-      {verbs: ['NORTH'], action: ["goto", LOC_PARALLEL2]},
-      {verbs: ['WEST', 'CRAWL'], action: ["goto", LOC_LONGEAST]},
+      {verbs: ['SOUTH', 'UPWAR', 'PASSA', 'CLIMB'], action: [goto, LOC_ALIKE1]},
+      {verbs: ['EAST'], action: [goto, LOC_WESTBANK]},
+      {verbs: ['NORTH'], action: [goto, LOC_PARALLEL2]},
+      {verbs: ['WEST', 'CRAWL'], action: [goto, LOC_LONGEAST]},
     ]
 - LOC_ALIKE1:
     description:
@@ -975,11 +991,11 @@ locations: !!omap
     conditions: {DEEP: true, NOBACK: true}
     hints: [*maze]
     travel: [
-      {verbs: ['UPWAR'], action: ["goto", LOC_MISTWEST]},
-      {verbs: ['NORTH'], action: ["goto", LOC_ALIKE1]},
-      {verbs: ['EAST'], action: ["goto", LOC_ALIKE2]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_ALIKE4]},
-      {verbs: ['WEST'], action: ["goto", LOC_ALIKE11]},
+      {verbs: ['UPWAR'], action: [goto, LOC_MISTWEST]},
+      {verbs: ['NORTH'], action: [goto, LOC_ALIKE1]},
+      {verbs: ['EAST'], action: [goto, LOC_ALIKE2]},
+      {verbs: ['SOUTH'], action: [goto, LOC_ALIKE4]},
+      {verbs: ['WEST'], action: [goto, LOC_ALIKE11]},
     ]
 - LOC_ALIKE2:
     description:
@@ -988,9 +1004,9 @@ locations: !!omap
     conditions: {DEEP: true, NOBACK: true}
     hints: [*maze]
     travel: [
-      {verbs: ['WEST'], action: ["goto", LOC_ALIKE1]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_ALIKE3]},
-      {verbs: ['EAST'], action: ["goto", LOC_ALIKE4]},
+      {verbs: ['WEST'], action: [goto, LOC_ALIKE1]},
+      {verbs: ['SOUTH'], action: [goto, LOC_ALIKE3]},
+      {verbs: ['EAST'], action: [goto, LOC_ALIKE4]},
     ]
 - LOC_ALIKE3:
     description:
@@ -999,10 +1015,10 @@ locations: !!omap
     conditions: {DEEP: true, NOBACK: true}
     hints: [*maze]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_ALIKE2]},
-      {verbs: ['D'], action: ["goto", LOC_DEADEND3]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_ALIKE6]},
-      {verbs: ['NORTH'], action: ["goto", LOC_DEADEND9]},
+      {verbs: ['EAST'], action: [goto, LOC_ALIKE2]},
+      {verbs: ['D'], action: [goto, LOC_DEADEND3]},
+      {verbs: ['SOUTH'], action: [goto, LOC_ALIKE6]},
+      {verbs: ['NORTH'], action: [goto, LOC_DEADEND9]},
     ]
 - LOC_ALIKE4:
     description:
@@ -1011,11 +1027,11 @@ locations: !!omap
     conditions: {DEEP: true, NOBACK: true}
     hints: [*maze]
     travel: [
-      {verbs: ['WEST'], action: ["goto", LOC_ALIKE1]},
-      {verbs: ['NORTH'], action: ["goto", LOC_ALIKE2]},
-      {verbs: ['EAST'], action: ["goto", LOC_DEADEND1]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_DEADEND2]},
-      {verbs: ['UPWAR', 'D'], action: ["goto", LOC_ALIKE14]},
+      {verbs: ['WEST'], action: [goto, LOC_ALIKE1]},
+      {verbs: ['NORTH'], action: [goto, LOC_ALIKE2]},
+      {verbs: ['EAST'], action: [goto, LOC_DEADEND1]},
+      {verbs: ['SOUTH'], action: [goto, LOC_DEADEND2]},
+      {verbs: ['UPWAR', 'D'], action: [goto, LOC_ALIKE14]},
     ]
 - LOC_DEADEND1:
     description:
@@ -1024,7 +1040,7 @@ locations: !!omap
     conditions: {DEEP: true, NOARRR: true}
     hints: [*maze]
     travel: [
-      {verbs: ['WEST', 'OUT'], action: ["goto", LOC_ALIKE4]},
+      {verbs: ['WEST', 'OUT'], action: [goto, LOC_ALIKE4]},
     ]
 - LOC_DEADEND2:
     description:
@@ -1033,7 +1049,7 @@ locations: !!omap
     conditions: {DEEP: true, NOARRR: true}
     hints: [*maze]
     travel: [
-      {verbs: ['EAST', 'OUT'], action: ["goto", LOC_ALIKE4]},
+      {verbs: ['EAST', 'OUT'], action: [goto, LOC_ALIKE4]},
     ]
 - LOC_DEADEND3:
     description:
@@ -1042,7 +1058,7 @@ locations: !!omap
     conditions: {DEEP: true, NOARRR: true}
     hints: [*maze]
     travel: [
-      {verbs: ['UPWAR', 'OUT'], action: ["goto", LOC_ALIKE3]},
+      {verbs: ['UPWAR', 'OUT'], action: [goto, LOC_ALIKE3]},
     ]
 - LOC_ALIKE5:
     description:
@@ -1051,8 +1067,8 @@ locations: !!omap
     conditions: {DEEP: true, NOBACK: true}
     hints: [*maze]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_ALIKE6]},
-      {verbs: ['WEST'], action: ["goto", LOC_ALIKE7]},
+      {verbs: ['EAST'], action: [goto, LOC_ALIKE6]},
+      {verbs: ['WEST'], action: [goto, LOC_ALIKE7]},
     ]
 - LOC_ALIKE6:
     description:
@@ -1061,10 +1077,10 @@ locations: !!omap
     conditions: {DEEP: true, NOBACK: true}
     hints: [*maze]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_ALIKE3]},
-      {verbs: ['WEST'], action: ["goto", LOC_ALIKE5]},
-      {verbs: ['D'], action: ["goto", LOC_ALIKE7]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_ALIKE8]},
+      {verbs: ['EAST'], action: [goto, LOC_ALIKE3]},
+      {verbs: ['WEST'], action: [goto, LOC_ALIKE5]},
+      {verbs: ['D'], action: [goto, LOC_ALIKE7]},
+      {verbs: ['SOUTH'], action: [goto, LOC_ALIKE8]},
     ]
 - LOC_ALIKE7:
     description:
@@ -1073,10 +1089,10 @@ locations: !!omap
     conditions: {DEEP: true, NOBACK: true}
     hints: [*maze]
     travel: [
-      {verbs: ['WEST'], action: ["goto", LOC_ALIKE5]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_ALIKE6]},
-      {verbs: ['EAST'], action: ["goto", LOC_ALIKE8]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_ALIKE9]},
+      {verbs: ['WEST'], action: [goto, LOC_ALIKE5]},
+      {verbs: ['UPWAR'], action: [goto, LOC_ALIKE6]},
+      {verbs: ['EAST'], action: [goto, LOC_ALIKE8]},
+      {verbs: ['SOUTH'], action: [goto, LOC_ALIKE9]},
     ]
 - LOC_ALIKE8:
     description:
@@ -1085,12 +1101,12 @@ locations: !!omap
     conditions: {DEEP: true, NOBACK: true}
     hints: [*maze]
     travel: [
-      {verbs: ['WEST'], action: ["goto", LOC_ALIKE6]},
-      {verbs: ['EAST'], action: ["goto", LOC_ALIKE7]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_ALIKE8]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_ALIKE9]},
-      {verbs: ['NORTH'], action: ["goto", LOC_ALIKE10]},
-      {verbs: ['D'], action: ["goto", LOC_DEADEND11]},
+      {verbs: ['WEST'], action: [goto, LOC_ALIKE6]},
+      {verbs: ['EAST'], action: [goto, LOC_ALIKE7]},
+      {verbs: ['SOUTH'], action: [goto, LOC_ALIKE8]},
+      {verbs: ['UPWAR'], action: [goto, LOC_ALIKE9]},
+      {verbs: ['NORTH'], action: [goto, LOC_ALIKE10]},
+      {verbs: ['D'], action: [goto, LOC_DEADEND11]},
     ]
 - LOC_ALIKE9:
     description:
@@ -1099,9 +1115,9 @@ locations: !!omap
     conditions: {DEEP: true, NOBACK: true}
     hints: [*maze]
     travel: [
-      {verbs: ['WEST'], action: ["goto", LOC_ALIKE7]},
-      {verbs: ['NORTH'], action: ["goto", LOC_ALIKE8]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_DEADEND4]},
+      {verbs: ['WEST'], action: [goto, LOC_ALIKE7]},
+      {verbs: ['NORTH'], action: [goto, LOC_ALIKE8]},
+      {verbs: ['SOUTH'], action: [goto, LOC_DEADEND4]},
     ]
 - LOC_DEADEND4:
     description:
@@ -1110,7 +1126,7 @@ locations: !!omap
     conditions: {DEEP: true, NOARRR: true}
     hints: [*maze]
     travel: [
-      {verbs: ['WEST', 'OUT'], action: ["goto", LOC_ALIKE9]},
+      {verbs: ['WEST', 'OUT'], action: [goto, LOC_ALIKE9]},
     ]
 - LOC_ALIKE10:
     description:
@@ -1119,10 +1135,10 @@ locations: !!omap
     conditions: {DEEP: true, NOBACK: true}
     hints: [*maze]
     travel: [
-      {verbs: ['WEST'], action: ["goto", LOC_ALIKE8]},
-      {verbs: ['NORTH'], action: ["goto", LOC_ALIKE10]},
-      {verbs: ['D'], action: ["goto", LOC_DEADEND5]},
-      {verbs: ['EAST'], action: ["goto", LOC_PITBRINK]},
+      {verbs: ['WEST'], action: [goto, LOC_ALIKE8]},
+      {verbs: ['NORTH'], action: [goto, LOC_ALIKE10]},
+      {verbs: ['D'], action: [goto, LOC_DEADEND5]},
+      {verbs: ['EAST'], action: [goto, LOC_PITBRINK]},
     ]
 - LOC_DEADEND5:
     description:
@@ -1131,7 +1147,7 @@ locations: !!omap
     conditions: {DEEP: true, NOARRR: true}
     hints: [*maze]
     travel: [
-      {verbs: ['UPWAR', 'OUT'], action: ["goto", LOC_ALIKE10]},
+      {verbs: ['UPWAR', 'OUT'], action: [goto, LOC_ALIKE10]},
     ]
 - LOC_PITBRINK:
     description:
@@ -1139,11 +1155,11 @@ locations: !!omap
       short: 'You''re at brink of pit.'
     conditions: {DEEP: true, NOBACK: true}
     travel: [
-      {verbs: ['D', 'CLIMB'], action: ["goto", LOC_BIRD]},
-      {verbs: ['WEST'], action: ["goto", LOC_ALIKE10]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_DEADEND6]},
-      {verbs: ['NORTH'], action: ["goto", LOC_ALIKE12]},
-      {verbs: ['EAST'], action: ["goto", LOC_ALIKE13]},
+      {verbs: ['D', 'CLIMB'], action: [goto, LOC_BIRD]},
+      {verbs: ['WEST'], action: [goto, LOC_ALIKE10]},
+      {verbs: ['SOUTH'], action: [goto, LOC_DEADEND6]},
+      {verbs: ['NORTH'], action: [goto, LOC_ALIKE12]},
+      {verbs: ['EAST'], action: [goto, LOC_ALIKE13]},
     ]
 - LOC_DEADEND6:
     description:
@@ -1151,7 +1167,7 @@ locations: !!omap
       short: !!null
     conditions: {NOARRR: true, DEEP: true}
     travel: [
-      {verbs: ['EAST', 'OUT'], action: ["goto", LOC_PITBRINK]},
+      {verbs: ['EAST', 'OUT'], action: [goto, LOC_PITBRINK]},
     ]
 - LOC_PARALLEL2:
     description:
@@ -1159,7 +1175,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_WESTBANK]},
+      {verbs: [], action: [goto, LOC_WESTBANK]},
     ]
 - LOC_LONGEAST:
     description:
@@ -1167,9 +1183,9 @@ locations: !!omap
       short: 'You''re at east end of long hall.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['EAST', 'UPWAR', 'CRAWL'], action: ["goto", LOC_MISTWEST]},
-      {verbs: ['WEST'], action: ["goto", LOC_LONGWEST]},
-      {verbs: ['NORTH', 'D', 'HOLE'], action: ["goto", LOC_CROSSOVER]},
+      {verbs: ['EAST', 'UPWAR', 'CRAWL'], action: [goto, LOC_MISTWEST]},
+      {verbs: ['WEST'], action: [goto, LOC_LONGWEST]},
+      {verbs: ['NORTH', 'D', 'HOLE'], action: [goto, LOC_CROSSOVER]},
     ]
 - LOC_LONGWEST:
     description:
@@ -1177,9 +1193,9 @@ locations: !!omap
       short: 'You''re at west end of long hall.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_LONGEAST]},
-      {verbs: ['NORTH'], action: ["goto", LOC_CROSSOVER]},
-      {verbs: ['SOUTH'], cond: [carry OBJ_0], action: ["goto", LOC_DIFFERENT1]},
+      {verbs: ['EAST'], action: [goto, LOC_LONGEAST]},
+      {verbs: ['NORTH'], action: [goto, LOC_CROSSOVER]},
+      {verbs: ['SOUTH'], cond: [carry, OBJ_0], action: [goto, LOC_DIFFERENT1]},
     ]
 - LOC_CROSSOVER:
     description:
@@ -1187,10 +1203,10 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['WEST'], action: ["goto", LOC_LONGEAST]},
-      {verbs: ['NORTH'], action: ["goto", LOC_DEADEND7]},
-      {verbs: ['EAST'], action: ["goto", LOC_WESTSIDE]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_LONGWEST]},
+      {verbs: ['WEST'], action: [goto, LOC_LONGEAST]},
+      {verbs: ['NORTH'], action: [goto, LOC_DEADEND7]},
+      {verbs: ['EAST'], action: [goto, LOC_WESTSIDE]},
+      {verbs: ['SOUTH'], action: [goto, LOC_LONGWEST]},
     ]
 - LOC_DEADEND7:
     description:
@@ -1198,7 +1214,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SOUTH', 'OUT'], action: ["goto", LOC_CROSSOVER]},
+      {verbs: ['SOUTH', 'OUT'], action: [goto, LOC_CROSSOVER]},
     ]
 - LOC_COMPLEX:
     description:
@@ -1208,10 +1224,10 @@ locations: !!omap
     hints: [*jade]
     sound: WIND_WHISTLES
     travel: [
-      {verbs: ['UPWAR', 'CLIMB', 'ROOM'], action: ["goto", LOC_DUSTY]},
-      {verbs: ['WEST', 'BEDQU'], action: ["goto", LOC_BEDQUILT]},
-      {verbs: ['NORTH', 'SHELL'], action: ["goto", LOC_SHELLROOM]},
-      {verbs: ['EAST'], action: ["goto", LOC_ANTEROOM]},
+      {verbs: ['UPWAR', 'CLIMB', 'ROOM'], action: [goto, LOC_DUSTY]},
+      {verbs: ['WEST', 'BEDQU'], action: [goto, LOC_BEDQUILT]},
+      {verbs: ['NORTH', 'SHELL'], action: [goto, LOC_SHELLROOM]},
+      {verbs: ['EAST'], action: [goto, LOC_ANTEROOM]},
     ]
 - LOC_BEDQUILT:
     description:
@@ -1219,18 +1235,18 @@ locations: !!omap
       short: 'You''re in Bedquilt.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_COMPLEX]},
-      {verbs: ['WEST'], action: ["goto", LOC_SWISSCHEESE]},
-      {verbs: ['SOUTH'], cond: [pct 65], action: ["speak", FUTILE_CRAWL]},
-      {verbs: ['SLAB'], action: ["goto", LOC_SLAB]},
-      {verbs: ['UPWAR'], cond: [pct 60], action: ["speak", FUTILE_CRAWL]},
-      {verbs: ['UPWAR'], cond: [pct 70], action: ["goto", LOC_SECRET2]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_DUSTY]},
-      {verbs: ['NORTH'], cond: [pct 50], action: ["speak", FUTILE_CRAWL]},
-      {verbs: ['NORTH'], cond: [pct 75], action: ["goto", LOC_LOWROOM]},
-      {verbs: ['NORTH'], action: ["goto", LOC_THREEJUNCTION]},
-      {verbs: ['D'], cond: [pct 65], action: ["speak", FUTILE_CRAWL]},
-      {verbs: ['D'], action: ["goto", LOC_ANTEROOM]},
+      {verbs: ['EAST'], action: [goto, LOC_COMPLEX]},
+      {verbs: ['WEST'], action: [goto, LOC_SWISSCHEESE]},
+      {verbs: ['SOUTH'], cond: [pct, 65], action: ["speak", FUTILE_CRAWL]},
+      {verbs: ['SLAB'], action: [goto, LOC_SLAB]},
+      {verbs: ['UPWAR'], cond: [pct, 60], action: ["speak", FUTILE_CRAWL]},
+      {verbs: ['UPWAR'], cond: [pct, 70], action: [goto, LOC_SECRET2]},
+      {verbs: ['UPWAR'], action: [goto, LOC_DUSTY]},
+      {verbs: ['NORTH'], cond: [pct, 50], action: ["speak", FUTILE_CRAWL]},
+      {verbs: ['NORTH'], cond: [pct, 75], action: [goto, LOC_LOWROOM]},
+      {verbs: ['NORTH'], action: [goto, LOC_THREEJUNCTION]},
+      {verbs: ['D'], cond: [pct, 65], action: ["speak", FUTILE_CRAWL]},
+      {verbs: ['D'], action: [goto, LOC_ANTEROOM]},
     ]
 - LOC_SWISSCHEESE:
     description:
@@ -1238,13 +1254,13 @@ locations: !!omap
       short: 'You''re in Swiss Cheese Room.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['NE'], action: ["goto", LOC_BEDQUILT]},
-      {verbs: ['WEST'], action: ["goto", LOC_EASTEND]},
-      {verbs: ['SOUTH'], cond: [pct 80], action: ["speak", FUTILE_CRAWL]},
-      {verbs: ['CANYO'], action: ["goto", LOC_TALL]},
-      {verbs: ['EAST'], action: ["goto", LOC_SOFTROOM]},
-      {verbs: ['NW'], cond: [pct 50], action: ["speak", FUTILE_CRAWL]},
-      {verbs: ['ORIEN'], action: ["goto", LOC_ORIENTAL]},
+      {verbs: ['NE'], action: [goto, LOC_BEDQUILT]},
+      {verbs: ['WEST'], action: [goto, LOC_EASTEND]},
+      {verbs: ['SOUTH'], cond: [pct, 80], action: ["speak", FUTILE_CRAWL]},
+      {verbs: ['CANYO'], action: [goto, LOC_TALL]},
+      {verbs: ['EAST'], action: [goto, LOC_SOFTROOM]},
+      {verbs: ['NW'], cond: [pct, 50], action: ["speak", FUTILE_CRAWL]},
+      {verbs: ['ORIEN'], action: [goto, LOC_ORIENTAL]},
     ]
 - LOC_EASTEND:
     description:
@@ -1252,9 +1268,9 @@ locations: !!omap
       short: 'You''re at east end of Twopit Room.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_SWISSCHEESE]},
-      {verbs: ['WEST', 'ACROS'], action: ["goto", LOC_WESTEND]},
-      {verbs: ['D', 'PIT'], action: ["goto", LOC_EASTPIT]},
+      {verbs: ['EAST'], action: [goto, LOC_SWISSCHEESE]},
+      {verbs: ['WEST', 'ACROS'], action: [goto, LOC_WESTEND]},
+      {verbs: ['D', 'PIT'], action: [goto, LOC_EASTPIT]},
     ]
 - LOC_SLAB:
     description:
@@ -1262,9 +1278,9 @@ locations: !!omap
       short: 'You''re in Slab Room.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SOUTH'], action: ["goto", LOC_WESTEND]},
-      {verbs: ['UPWAR', 'CLIMB'], action: ["goto", LOC_SECRET1]},
-      {verbs: ['NORTH'], action: ["goto", LOC_BEDQUILT]},
+      {verbs: ['SOUTH'], action: [goto, LOC_WESTEND]},
+      {verbs: ['UPWAR', 'CLIMB'], action: [goto, LOC_SECRET1]},
+      {verbs: ['NORTH'], action: [goto, LOC_BEDQUILT]},
     ]
 - LOC_SECRET1:
     description:
@@ -1272,11 +1288,11 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['D', 'SLAB'], action: ["goto", LOC_SLAB]},
-      {verbs: ['SOUTH'], cond: [not OBJ_31 0], action: ["goto", LOC_SECRET5]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_SECRET4]},
-      {verbs: ['NORTH'], action: ["goto", LOC_MIRRORCANYON]},
-      {verbs: ['RESER'], action: ["goto", LOC_RESERVOIR]},
+      {verbs: ['D', 'SLAB'], action: [goto, LOC_SLAB]},
+      {verbs: ['SOUTH'], cond: [not, DRAGON, DRAGON_BLOCKS], action: [goto, LOC_SECRET5]},
+      {verbs: ['SOUTH'], action: [goto, LOC_SECRET4]},
+      {verbs: ['NORTH'], action: [goto, LOC_MIRRORCANYON]},
+      {verbs: ['RESER'], action: [goto, LOC_RESERVOIR]},
     ]
 - LOC_SECRET2:
     description:
@@ -1284,9 +1300,9 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['NORTH'], action: ["goto", LOC_THREEJUNCTION]},
-      {verbs: ['D', 'PASSA'], action: ["goto", LOC_BEDQUILT]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_TOPSTALACTITE]},
+      {verbs: ['NORTH'], action: [goto, LOC_THREEJUNCTION]},
+      {verbs: ['D', 'PASSA'], action: [goto, LOC_BEDQUILT]},
+      {verbs: ['SOUTH'], action: [goto, LOC_TOPSTALACTITE]},
     ]
 - LOC_THREEJUNCTION:
     description:
@@ -1294,9 +1310,9 @@ locations: !!omap
       short: 'You''re at junction of three secret canyons.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SE'], action: ["goto", LOC_BEDQUILT]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_SECRET2]},
-      {verbs: ['NORTH'], action: ["goto", LOC_WINDOW2]},
+      {verbs: ['SE'], action: [goto, LOC_BEDQUILT]},
+      {verbs: ['SOUTH'], action: [goto, LOC_SECRET2]},
+      {verbs: ['NORTH'], action: [goto, LOC_WINDOW2]},
     ]
 - LOC_LOWROOM:
     description:
@@ -1304,10 +1320,10 @@ locations: !!omap
       short: 'You''re in large low room.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['BEDQU'], action: ["goto", LOC_BEDQUILT]},
-      {verbs: ['SW'], action: ["goto", LOC_WINDING]},
-      {verbs: ['NORTH'], action: ["goto", LOC_DEADCRAWL]},
-      {verbs: ['SE', 'ORIEN'], action: ["goto", LOC_ORIENTAL]},
+      {verbs: ['BEDQU'], action: [goto, LOC_BEDQUILT]},
+      {verbs: ['SW'], action: [goto, LOC_WINDING]},
+      {verbs: ['NORTH'], action: [goto, LOC_DEADCRAWL]},
+      {verbs: ['SE', 'ORIEN'], action: [goto, LOC_ORIENTAL]},
     ]
 - LOC_DEADCRAWL:
     description:
@@ -1315,7 +1331,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SOUTH', 'CRAWL', 'OUT'], action: ["goto", LOC_LOWROOM]},
+      {verbs: ['SOUTH', 'CRAWL', 'OUT'], action: [goto, LOC_LOWROOM]},
     ]
 - LOC_SECRET3:
     description:
@@ -1323,10 +1339,10 @@ locations: !!omap
       short: 'You''re in secret e/w canyon above tight canyon.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_KINGHALL]},
-      {verbs: ['WEST'], cond: [not OBJ_31 0], action: ["goto", LOC_SECRET5]},
-      {verbs: ['WEST'], action: ["goto", LOC_SECRET6]},
-      {verbs: ['D'], action: ["goto", LOC_WIDEPLACE]},
+      {verbs: ['EAST'], action: [goto, LOC_KINGHALL]},
+      {verbs: ['WEST'], cond: [not, DRAGON, DRAGON_BLOCKS], action: [goto, LOC_SECRET5]},
+      {verbs: ['WEST'], action: [goto, LOC_SECRET6]},
+      {verbs: ['D'], action: [goto, LOC_WIDEPLACE]},
     ]
 - LOC_WIDEPLACE:
     description:
@@ -1334,8 +1350,8 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SOUTH'], action: ["goto", LOC_TIGHTPLACE]},
-      {verbs: ['NORTH'], action: ["goto", LOC_TALL]},
+      {verbs: ['SOUTH'], action: [goto, LOC_TIGHTPLACE]},
+      {verbs: ['NORTH'], action: [goto, LOC_TALL]},
     ]
 - LOC_TIGHTPLACE:
     description:
@@ -1343,7 +1359,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['NORTH'], action: ["goto", LOC_WIDEPLACE]},
+      {verbs: ['NORTH'], action: [goto, LOC_WIDEPLACE]},
     ]
 - LOC_TALL:
     description:
@@ -1351,9 +1367,9 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_WIDEPLACE]},
-      {verbs: ['WEST'], action: ["goto", LOC_BOULDERS1]},
-      {verbs: ['NORTH', 'CRAWL'], action: ["goto", LOC_SWISSCHEESE]},
+      {verbs: ['EAST'], action: [goto, LOC_WIDEPLACE]},
+      {verbs: ['WEST'], action: [goto, LOC_BOULDERS1]},
+      {verbs: ['NORTH', 'CRAWL'], action: [goto, LOC_SWISSCHEESE]},
     ]
 - LOC_BOULDERS1:
     description:
@@ -1361,7 +1377,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SOUTH'], action: ["goto", LOC_TALL]},
+      {verbs: ['SOUTH'], action: [goto, LOC_TALL]},
     ]
 - LOC_SEWER:
     description:
@@ -1369,7 +1385,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_BUILDING]},
+      {verbs: [], action: [goto, LOC_BUILDING]},
     ]
 - LOC_ALIKE11:
     description:
@@ -1378,10 +1394,10 @@ locations: !!omap
     conditions: {DEEP: true, NOBACK: true}
     hints: [*maze]
     travel: [
-      {verbs: ['NORTH'], action: ["goto", LOC_ALIKE1]},
-      {verbs: ['WEST'], action: ["goto", LOC_ALIKE11]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_ALIKE11]},
-      {verbs: ['EAST'], action: ["goto", LOC_DEADEND8]},
+      {verbs: ['NORTH'], action: [goto, LOC_ALIKE1]},
+      {verbs: ['WEST'], action: [goto, LOC_ALIKE11]},
+      {verbs: ['SOUTH'], action: [goto, LOC_ALIKE11]},
+      {verbs: ['EAST'], action: [goto, LOC_DEADEND8]},
     ]
 - LOC_DEADEND8:
     description:
@@ -1390,7 +1406,7 @@ locations: !!omap
     conditions: {DEEP: true}
     hints: [*maze]
     travel: [
-      {verbs: ['WEST', 'OUT'], action: ["goto", LOC_ALIKE11]},
+      {verbs: ['WEST', 'OUT'], action: [goto, LOC_ALIKE11]},
     ]
 - LOC_DEADEND9:
     description:
@@ -1399,7 +1415,7 @@ locations: !!omap
     conditions: {DEEP: true, NOARRR: true}
     hints: [*maze]
     travel: [
-      {verbs: ['SOUTH', 'OUT'], action: ["goto", LOC_ALIKE3]},
+      {verbs: ['SOUTH', 'OUT'], action: [goto, LOC_ALIKE3]},
     ]
 - LOC_ALIKE12:
     description:
@@ -1407,9 +1423,9 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true, NOBACK: true}
     travel: [
-      {verbs: ['SOUTH'], action: ["goto", LOC_PITBRINK]},
-      {verbs: ['EAST'], action: ["goto", LOC_ALIKE13]},
-      {verbs: ['WEST'], action: ["goto", LOC_DEADEND10]},
+      {verbs: ['SOUTH'], action: [goto, LOC_PITBRINK]},
+      {verbs: ['EAST'], action: [goto, LOC_ALIKE13]},
+      {verbs: ['WEST'], action: [goto, LOC_DEADEND10]},
     ]
 - LOC_ALIKE13:
     description:
@@ -1417,9 +1433,9 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true, NOBACK: true}
     travel: [
-      {verbs: ['NORTH'], action: ["goto", LOC_PITBRINK]},
-      {verbs: ['WEST'], action: ["goto", LOC_ALIKE12]},
-      {verbs: ['NW'], action: ["goto", LOC_DEADEND12]},
+      {verbs: ['NORTH'], action: [goto, LOC_PITBRINK]},
+      {verbs: ['WEST'], action: [goto, LOC_ALIKE12]},
+      {verbs: ['NW'], action: [goto, LOC_DEADEND12]},
     ]
 - LOC_DEADEND10:
     description:
@@ -1427,7 +1443,7 @@ locations: !!omap
       short: !!null
     conditions: {NOARRR: true, DEEP: true}
     travel: [
-      {verbs: ['EAST', 'OUT'], action: ["goto", LOC_ALIKE12]},
+      {verbs: ['EAST', 'OUT'], action: [goto, LOC_ALIKE12]},
     ]
 - LOC_DEADEND11:
     description:
@@ -1436,7 +1452,7 @@ locations: !!omap
     conditions: {DEEP: true, NOARRR: true}
     hints: [*maze]
     travel: [
-      {verbs: ['UPWAR', 'OUT'], action: ["goto", LOC_ALIKE8]},
+      {verbs: ['UPWAR', 'OUT'], action: [goto, LOC_ALIKE8]},
     ]
 - LOC_ALIKE14:
     description:
@@ -1445,7 +1461,7 @@ locations: !!omap
     conditions: {DEEP: true, NOBACK: true}
     hints: [*maze]
     travel: [
-      {verbs: ['UPWAR', 'D'], action: ["goto", LOC_ALIKE4]},
+      {verbs: ['UPWAR', 'D'], action: [goto, LOC_ALIKE4]},
     ]
 - LOC_NARROW:
     description:
@@ -1453,9 +1469,9 @@ locations: !!omap
       short: 'You''re in narrow corridor.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['D', 'CLIMB', 'EAST'], action: ["goto", LOC_WESTPIT]},
-      {verbs: ['JUMP'], action: ["goto", LOC_NECKBROKE]},
-      {verbs: ['WEST', 'GIANT'], action: ["goto", LOC_GIANTROOM]},
+      {verbs: ['D', 'CLIMB', 'EAST'], action: [goto, LOC_WESTPIT]},
+      {verbs: ['JUMP'], action: [goto, LOC_NECKBROKE]},
+      {verbs: ['WEST', 'GIANT'], action: [goto, LOC_GIANTROOM]},
     ]
 - LOC_NOCLIMB:
     description:
@@ -1463,7 +1479,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_WESTPIT]},
+      {verbs: [], action: [goto, LOC_WESTPIT]},
     ]
 - LOC_PLANTTOP:
     description:
@@ -1471,7 +1487,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_WESTEND]},
+      {verbs: [], action: [goto, LOC_WESTEND]},
     ]
 - LOC_INCLINE:
     description:
@@ -1479,8 +1495,8 @@ locations: !!omap
       short: 'You''re at steep incline above large room.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['NORTH', 'CAVER', 'PASSA'], action: ["goto", LOC_WATERFALL]},
-      {verbs: ['D', 'CLIMB'], action: ["goto", LOC_LOWROOM]},
+      {verbs: ['NORTH', 'CAVER', 'PASSA'], action: [goto, LOC_WATERFALL]},
+      {verbs: ['D', 'CLIMB'], action: [goto, LOC_LOWROOM]},
     ]
 - LOC_GIANTROOM:
     description:
@@ -1488,9 +1504,9 @@ locations: !!omap
       short: 'You''re in Giant Room.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SOUTH'], action: ["goto", LOC_NARROW]},
-      {verbs: ['EAST'], action: ["goto", LOC_CAVEIN]},
-      {verbs: ['NORTH'], action: ["goto", LOC_IMMENSE]},
+      {verbs: ['SOUTH'], action: [goto, LOC_NARROW]},
+      {verbs: ['EAST'], action: [goto, LOC_CAVEIN]},
+      {verbs: ['NORTH'], action: [goto, LOC_IMMENSE]},
     ]
 - LOC_CAVEIN:
     description:
@@ -1498,7 +1514,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SOUTH', 'GIANT', 'OUT'], action: ["goto", LOC_GIANTROOM]},
+      {verbs: ['SOUTH', 'GIANT', 'OUT'], action: [goto, LOC_GIANTROOM]},
     ]
 - LOC_IMMENSE:
     description:
@@ -1507,8 +1523,8 @@ locations: !!omap
     conditions: {DEEP: true}
     sound: WIND_WHISTLES
     travel: [
-      {verbs: ['SOUTH', 'GIANT', 'PASSA'], action: ["goto", LOC_GIANTROOM]},
-      {verbs: ['NORTH', 'ENTER', 'CAVER'], cond: [not OBJ_9 0], action: ["goto", LOC_WATERFALL]},
+      {verbs: ['SOUTH', 'GIANT', 'PASSA'], action: [goto, LOC_GIANTROOM]},
+      {verbs: ['NORTH', 'ENTER', 'CAVER'], cond: [not, DOOR, 0], action: [goto, LOC_WATERFALL]},
       {verbs: ['NORTH'], action: ["speak", RUSTY_DOOR]},
     ]
 - LOC_WATERFALL:
@@ -1518,9 +1534,9 @@ locations: !!omap
     conditions: {FLUID: true, DEEP: true}
     sound: STREAM_SPLASHES
     travel: [
-      {verbs: ['SOUTH', 'OUT'], action: ["goto", LOC_IMMENSE]},
-      {verbs: ['GIANT'], action: ["goto", LOC_GIANTROOM]},
-      {verbs: ['WEST'], action: ["goto", LOC_INCLINE]},
+      {verbs: ['SOUTH', 'OUT'], action: [goto, LOC_IMMENSE]},
+      {verbs: ['GIANT'], action: [goto, LOC_GIANTROOM]},
+      {verbs: ['WEST'], action: [goto, LOC_INCLINE]},
     ]
 - LOC_SOFTROOM:
     description:
@@ -1528,7 +1544,7 @@ locations: !!omap
       short: 'You''re in Soft Room.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['WEST', 'OUT'], action: ["goto", LOC_SWISSCHEESE]},
+      {verbs: ['WEST', 'OUT'], action: [goto, LOC_SWISSCHEESE]},
     ]
 - LOC_ORIENTAL:
     description:
@@ -1536,9 +1552,9 @@ locations: !!omap
       short: 'You''re in Oriental Room.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SE'], action: ["goto", LOC_SWISSCHEESE]},
-      {verbs: ['WEST', 'CRAWL'], action: ["goto", LOC_LOWROOM]},
-      {verbs: ['UPWAR', 'NORTH', 'CAVER'], action: ["goto", LOC_MISTY]},
+      {verbs: ['SE'], action: [goto, LOC_SWISSCHEESE]},
+      {verbs: ['WEST', 'CRAWL'], action: [goto, LOC_LOWROOM]},
+      {verbs: ['UPWAR', 'NORTH', 'CAVER'], action: [goto, LOC_MISTY]},
     ]
 - LOC_MISTY:
     description:
@@ -1547,8 +1563,8 @@ locations: !!omap
     conditions: {DEEP: true}
     sound: NO_MEANING
     travel: [
-      {verbs: ['SOUTH', 'ORIEN'], action: ["goto", LOC_ORIENTAL]},
-      {verbs: ['WEST'], action: ["goto", LOC_ALCOVE]},
+      {verbs: ['SOUTH', 'ORIEN'], action: [goto, LOC_ORIENTAL]},
+      {verbs: ['WEST'], action: [goto, LOC_ALCOVE]},
     ]
 - LOC_ALCOVE:
     description:
@@ -1557,9 +1573,9 @@ locations: !!omap
     conditions: {DEEP: true}
     hints: [*dark]
     travel: [
-      {verbs: ['NW', 'CAVER'], action: ["goto", LOC_MISTY]},
+      {verbs: ['NW', 'CAVER'], action: [goto, LOC_MISTY]},
       {verbs: ['EAST', 'PASSA'], action: ["special", 1]},
-      {verbs: ['EAST'], action: ["goto", LOC_PLOVER]},
+      {verbs: ['EAST'], action: [goto, LOC_PLOVER]},
     ]
 - LOC_PLOVER:
     description:
@@ -1569,10 +1585,10 @@ locations: !!omap
     hints: [*dark]
     travel: [
       {verbs: ['WEST', 'PASSA', 'OUT'], action: ["special", 1]},
-      {verbs: ['WEST'], action: ["goto", LOC_ALCOVE]},
-      {verbs: ['PLOVE'], cond: [carry OBJ_59], action: ["special", 2]},
-      {verbs: ['PLOVE'], action: ["goto", LOC_FOOF6]},
-      {verbs: ['NE', 'DARK'], action: ["goto", LOC_DARKROOM]},
+      {verbs: ['WEST'], action: [goto, LOC_ALCOVE]},
+      {verbs: ['PLOVE'], cond: [carry, EMERALD], action: ["special", 2]},
+      {verbs: ['PLOVE'], action: [goto, LOC_FOOF6]},
+      {verbs: ['NE', 'DARK'], action: [goto, LOC_DARKROOM]},
     ]
 - LOC_DARKROOM:
     description:
@@ -1581,7 +1597,7 @@ locations: !!omap
     conditions: {DEEP: true}
     hints: [*dark]
     travel: [
-      {verbs: ['SOUTH', 'PLOVE', 'OUT'], action: ["goto", LOC_PLOVER]},
+      {verbs: ['SOUTH', 'PLOVE', 'OUT'], action: [goto, LOC_PLOVER]},
     ]
 - LOC_ARCHED:
     description:
@@ -1589,7 +1605,7 @@ locations: !!omap
       short: 'You''re in arched hall.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['D', 'SHELL', 'OUT'], action: ["goto", LOC_SHELLROOM]},
+      {verbs: ['D', 'SHELL', 'OUT'], action: [goto, LOC_SHELLROOM]},
     ]
 - LOC_SHELLROOM:
     description:
@@ -1597,11 +1613,11 @@ locations: !!omap
       short: 'You''re in Shell Room.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['UPWAR', 'HALL'], action: ["goto", LOC_ARCHED]},
-      {verbs: ['D'], action: ["goto", LOC_SLOPING1]},
-      {verbs: ['SOUTH'], cond: [carry OBJ_14], action: ["speak", CLAM_BLOCKER]},
-      {verbs: ['SOUTH'], cond: [carry OBJ_15], action: ["speak", OYSTER_BLOCKER]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_COMPLEX]},
+      {verbs: ['UPWAR', 'HALL'], action: [goto, LOC_ARCHED]},
+      {verbs: ['D'], action: [goto, LOC_SLOPING1]},
+      {verbs: ['SOUTH'], cond: [carry, CLAM], action: ["speak", CLAM_BLOCKER]},
+      {verbs: ['SOUTH'], cond: [carry, OYSTER], action: ["speak", OYSTER_BLOCKER]},
+      {verbs: ['SOUTH'], action: [goto, LOC_COMPLEX]},
     ]
 - LOC_SLOPING1:
     description:
@@ -1609,8 +1625,8 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['UPWAR', 'SHELL'], action: ["goto", LOC_SHELLROOM]},
-      {verbs: ['D'], action: ["goto", LOC_CULDESAC]},
+      {verbs: ['UPWAR', 'SHELL'], action: [goto, LOC_SHELLROOM]},
+      {verbs: ['D'], action: [goto, LOC_CULDESAC]},
     ]
 - LOC_CULDESAC:
     description:
@@ -1618,8 +1634,8 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['UPWAR', 'OUT'], action: ["goto", LOC_SLOPING1]},
-      {verbs: ['SHELL'], action: ["goto", LOC_SHELLROOM]},
+      {verbs: ['UPWAR', 'OUT'], action: [goto, LOC_SLOPING1]},
+      {verbs: ['SHELL'], action: [goto, LOC_SHELLROOM]},
     ]
 - LOC_ANTEROOM:
     description:
@@ -1627,9 +1643,9 @@ locations: !!omap
       short: 'You''re in anteroom.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['UPWAR'], action: ["goto", LOC_COMPLEX]},
-      {verbs: ['WEST'], action: ["goto", LOC_BEDQUILT]},
-      {verbs: ['EAST'], action: ["goto", LOC_WITTSEND]},
+      {verbs: ['UPWAR'], action: [goto, LOC_COMPLEX]},
+      {verbs: ['WEST'], action: [goto, LOC_BEDQUILT]},
+      {verbs: ['EAST'], action: [goto, LOC_WITTSEND]},
     ]
 - LOC_DIFFERENT1:
     description:
@@ -1637,16 +1653,16 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true, NOBACK: true}
     travel: [
-      {verbs: ['SOUTH'], action: ["goto", LOC_DIFFERENT3]},
-      {verbs: ['SW'], action: ["goto", LOC_DIFFERENT4]},
-      {verbs: ['NE'], action: ["goto", LOC_DIFFERENT5]},
-      {verbs: ['SE'], action: ["goto", LOC_DIFFERENT6]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_DIFFERENT7]},
-      {verbs: ['NW'], action: ["goto", LOC_DIFFERENT8]},
-      {verbs: ['EAST'], action: ["goto", LOC_DIFFERENT9]},
-      {verbs: ['WEST'], action: ["goto", LOC_DIFFERENT10]},
-      {verbs: ['NORTH'], action: ["goto", LOC_DIFFERENT11]},
-      {verbs: ['D'], action: ["goto", LOC_LONGWEST]},
+      {verbs: ['SOUTH'], action: [goto, LOC_DIFFERENT3]},
+      {verbs: ['SW'], action: [goto, LOC_DIFFERENT4]},
+      {verbs: ['NE'], action: [goto, LOC_DIFFERENT5]},
+      {verbs: ['SE'], action: [goto, LOC_DIFFERENT6]},
+      {verbs: ['UPWAR'], action: [goto, LOC_DIFFERENT7]},
+      {verbs: ['NW'], action: [goto, LOC_DIFFERENT8]},
+      {verbs: ['EAST'], action: [goto, LOC_DIFFERENT9]},
+      {verbs: ['WEST'], action: [goto, LOC_DIFFERENT10]},
+      {verbs: ['NORTH'], action: [goto, LOC_DIFFERENT11]},
+      {verbs: ['D'], action: [goto, LOC_LONGWEST]},
     ]
 - LOC_WITTSEND:
     description:
@@ -1655,8 +1671,8 @@ locations: !!omap
     conditions: {DEEP: true, NOBACK: true}
     hints: [*witt]
     travel: [
-      {verbs: ['EAST', 'NORTH', 'SOUTH', 'NE', 'SE', 'SW', 'NW', 'UPWAR', 'D'], cond: [pct 95], action: ["speak", FUTILE_CRAWL]},
-      {verbs: ['EAST'], action: ["goto", LOC_ANTEROOM]},
+      {verbs: ['EAST', 'NORTH', 'SOUTH', 'NE', 'SE', 'SW', 'NW', 'UPWAR', 'D'], cond: [pct, 95], action: ["speak", FUTILE_CRAWL]},
+      {verbs: ['EAST'], action: [goto, LOC_ANTEROOM]},
       {verbs: ['WEST'], action: ["speak", WAY_BLOCKED]},
     ]
 - LOC_MIRRORCANYON:
@@ -1667,8 +1683,8 @@ locations: !!omap
     hints: [*jade]
     sound: WIND_WHISTLES
     travel: [
-      {verbs: ['SOUTH'], action: ["goto", LOC_SECRET1]},
-      {verbs: ['NORTH', 'RESER'], action: ["goto", LOC_RESERVOIR]},
+      {verbs: ['SOUTH'], action: [goto, LOC_SECRET1]},
+      {verbs: ['NORTH', 'RESER'], action: [goto, LOC_RESERVOIR]},
     ]
 - LOC_WINDOW2:
     description:
@@ -1676,8 +1692,8 @@ locations: !!omap
       short: 'You''re at window on pit.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['WEST'], action: ["goto", LOC_THREEJUNCTION]},
-      {verbs: ['JUMP'], action: ["goto", LOC_NECKBROKE]},
+      {verbs: ['WEST'], action: [goto, LOC_THREEJUNCTION]},
+      {verbs: ['JUMP'], action: [goto, LOC_NECKBROKE]},
     ]
 - LOC_TOPSTALACTITE:
     description:
@@ -1685,10 +1701,10 @@ locations: !!omap
       short: 'You''re at top of stalactite.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['NORTH'], action: ["goto", LOC_SECRET2]},
-      {verbs: ['D', 'JUMP', 'CLIMB'], cond: [pct 40], action: ["goto", LOC_ALIKE6]},
-      {verbs: ['D'], cond: [pct 50], action: ["goto", LOC_ALIKE9]},
-      {verbs: ['D'], action: ["goto", LOC_ALIKE4]},
+      {verbs: ['NORTH'], action: [goto, LOC_SECRET2]},
+      {verbs: ['D', 'JUMP', 'CLIMB'], cond: [pct, 40], action: [goto, LOC_ALIKE6]},
+      {verbs: ['D'], cond: [pct, 50], action: [goto, LOC_ALIKE9]},
+      {verbs: ['D'], action: [goto, LOC_ALIKE4]},
     ]
 - LOC_DIFFERENT2:
     description:
@@ -1696,16 +1712,16 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true, NOBACK: true}
     travel: [
-      {verbs: ['SW'], action: ["goto", LOC_DIFFERENT3]},
-      {verbs: ['NORTH'], action: ["goto", LOC_DIFFERENT4]},
-      {verbs: ['EAST'], action: ["goto", LOC_DIFFERENT5]},
-      {verbs: ['NW'], action: ["goto", LOC_DIFFERENT6]},
-      {verbs: ['SE'], action: ["goto", LOC_DIFFERENT7]},
-      {verbs: ['NE'], action: ["goto", LOC_DIFFERENT8]},
-      {verbs: ['WEST'], action: ["goto", LOC_DIFFERENT9]},
-      {verbs: ['D'], action: ["goto", LOC_DIFFERENT10]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_DIFFERENT11]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_DEADEND13]},
+      {verbs: ['SW'], action: [goto, LOC_DIFFERENT3]},
+      {verbs: ['NORTH'], action: [goto, LOC_DIFFERENT4]},
+      {verbs: ['EAST'], action: [goto, LOC_DIFFERENT5]},
+      {verbs: ['NW'], action: [goto, LOC_DIFFERENT6]},
+      {verbs: ['SE'], action: [goto, LOC_DIFFERENT7]},
+      {verbs: ['NE'], action: [goto, LOC_DIFFERENT8]},
+      {verbs: ['WEST'], action: [goto, LOC_DIFFERENT9]},
+      {verbs: ['D'], action: [goto, LOC_DIFFERENT10]},
+      {verbs: ['UPWAR'], action: [goto, LOC_DIFFERENT11]},
+      {verbs: ['SOUTH'], action: [goto, LOC_DEADEND13]},
     ]
 - LOC_RESERVOIR:
     description:
@@ -1714,9 +1730,9 @@ locations: !!omap
     conditions: {FLUID: true, DEEP: true}
     sound: STREAM_SPLASHES
     travel: [
-      {verbs: ['SOUTH', 'OUT'], action: ["goto", LOC_MIRRORCANYON]},
-      {verbs: ['NORTH', 'ACROS', 'CROSS'], cond: [not OBJ_45 1], action: ["speak", BAD_DIRECTION]},
-      {verbs: ['NORTH'], action: ["goto", LOC_RESBOTTOM]},
+      {verbs: ['SOUTH', 'OUT'], action: [goto, LOC_MIRRORCANYON]},
+      {verbs: ['NORTH', 'ACROS', 'CROSS'], cond: [not, RESER, 1], action: ["speak", BAD_DIRECTION]},
+      {verbs: ['NORTH'], action: [goto, LOC_RESBOTTOM]},
     ]
 - LOC_DEADEND12:
     description:
@@ -1724,7 +1740,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SE'], action: ["goto", LOC_ALIKE13]},
+      {verbs: ['SE'], action: [goto, LOC_ALIKE13]},
     ]
 - LOC_NE:
     description:
@@ -1733,7 +1749,7 @@ locations: !!omap
     conditions: {DEEP: true, LIT: true}
     sound: MURMURING_SNORING
     travel: [
-      {verbs: ['SW'], action: ["goto", LOC_SW]},
+      {verbs: ['SW'], action: [goto, LOC_SW]},
     ]
 - LOC_SW:
     description:
@@ -1742,7 +1758,7 @@ locations: !!omap
     conditions: {DEEP: true, LIT: true}
     sound: SNAKES_HISSING
     travel: [
-      {verbs: ['NE'], action: ["goto", LOC_NE]},
+      {verbs: ['NE'], action: [goto, LOC_NE]},
       {verbs: ['D'], action: ["speak", GRATE_NOWAY]},
     ]
 - LOC_SWCHASM:
@@ -1751,11 +1767,11 @@ locations: !!omap
       short: 'You''re on sw side of chasm.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SW'], action: ["goto", LOC_WINDING]},
-      {verbs: ['OVER', 'ACROS', 'CROSS', 'NE'], cond: [with OBJ_33], action: ["speak", TROLL_BLOCKS]},
-      {verbs: ['OVER'], cond: [not OBJ_32 0], action: ["speak", BRIDGE_GONE]},
+      {verbs: ['SW'], action: [goto, LOC_WINDING]},
+      {verbs: ['OVER', 'ACROS', 'CROSS', 'NE'], cond: [with, TROLL], action: ["speak", TROLL_BLOCKS]},
+      {verbs: ['OVER'], cond: [not, CHASM, TROLL_BRIDGE], action: ["speak", BRIDGE_GONE]},
       {verbs: ['OVER'], action: ["special", 3]},
-      {verbs: ['JUMP'], cond: [not OBJ_32 0], action: ["goto", LOC_NOMAKE]},
+      {verbs: ['JUMP'], cond: [not, CHASM, TROLL_BRIDGE], action: [goto, LOC_NOMAKE]},
       {verbs: ['JUMP'], action: ["speak", CROSS_BRIDGE]},
     ]
 - LOC_WINDING:
@@ -1764,8 +1780,8 @@ locations: !!omap
       short: 'You''re in sloping corridor.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['D'], action: ["goto", LOC_LOWROOM]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_SWCHASM]},
+      {verbs: ['D'], action: [goto, LOC_LOWROOM]},
+      {verbs: ['UPWAR'], action: [goto, LOC_SWCHASM]},
     ]
 - LOC_SECRET4:
     description:
@@ -1773,7 +1789,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['NORTH', 'OUT'], action: ["goto", LOC_SECRET1]},
+      {verbs: ['NORTH', 'OUT'], action: [goto, LOC_SECRET1]},
       {verbs: ['EAST', 'FORWA'], action: ["speak", NASTY_DRAGON]},
     ]
 - LOC_SECRET5:
@@ -1782,8 +1798,8 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['NORTH'], action: ["goto", LOC_SECRET1]},
-      {verbs: ['EAST'], action: ["goto", LOC_SECRET3]},
+      {verbs: ['NORTH'], action: [goto, LOC_SECRET1]},
+      {verbs: ['EAST'], action: [goto, LOC_SECRET3]},
     ]
 - LOC_SECRET6:
     description:
@@ -1791,7 +1807,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['EAST', 'OUT'], action: ["goto", LOC_SECRET3]},
+      {verbs: ['EAST', 'OUT'], action: [goto, LOC_SECRET3]},
       {verbs: ['NORTH', 'FORWA'], action: ["speak", NASTY_DRAGON]},
     ]
 - LOC_NECHASM:
@@ -1800,13 +1816,13 @@ locations: !!omap
       short: 'You''re on ne side of chasm.'
     conditions: {NOARRR: true, DEEP: true}
     travel: [
-      {verbs: ['NE'], action: ["goto", LOC_CORRIDOR]},
-      {verbs: ['OVER', 'ACROS', 'CROSS', 'SW'], cond: [with OBJ_33], action: ["speak", TROLL_BLOCKS]},
+      {verbs: ['NE'], action: [goto, LOC_CORRIDOR]},
+      {verbs: ['OVER', 'ACROS', 'CROSS', 'SW'], cond: [with, TROLL], action: ["speak", TROLL_BLOCKS]},
       {verbs: ['OVER'], action: ["special", 3]},
       {verbs: ['JUMP'], action: ["speak", CROSS_BRIDGE]},
-      {verbs: ['FORK'], action: ["goto", LOC_FORK]},
-      {verbs: ['VIEW'], action: ["goto", LOC_BREATHTAKING]},
-      {verbs: ['BARRE'], action: ["goto", LOC_BARRENFRONT]},
+      {verbs: ['FORK'], action: [goto, LOC_FORK]},
+      {verbs: ['VIEW'], action: [goto, LOC_BREATHTAKING]},
+      {verbs: ['BARRE'], action: [goto, LOC_BARRENFRONT]},
     ]
 - LOC_CORRIDOR:
     description:
@@ -1815,10 +1831,10 @@ locations: !!omap
     conditions: {NOARRR: true, DEEP: true}
     sound: DULL_RUMBLING
     travel: [
-      {verbs: ['WEST'], action: ["goto", LOC_NECHASM]},
-      {verbs: ['EAST', 'FORK'], action: ["goto", LOC_FORK]},
-      {verbs: ['VIEW'], action: ["goto", LOC_BREATHTAKING]},
-      {verbs: ['BARRE'], action: ["goto", LOC_BARRENFRONT]},
+      {verbs: ['WEST'], action: [goto, LOC_NECHASM]},
+      {verbs: ['EAST', 'FORK'], action: [goto, LOC_FORK]},
+      {verbs: ['VIEW'], action: [goto, LOC_BREATHTAKING]},
+      {verbs: ['BARRE'], action: [goto, LOC_BARRENFRONT]},
     ]
 - LOC_FORK:
     description:
@@ -1827,11 +1843,11 @@ locations: !!omap
     conditions: {NOARRR: true, DEEP: true}
     sound: DULL_RUMBLING
     travel: [
-      {verbs: ['WEST'], action: ["goto", LOC_CORRIDOR]},
-      {verbs: ['NE', 'LEFT'], action: ["goto", LOC_WARMWALLS]},
-      {verbs: ['SE', 'RIGHT', 'D'], action: ["goto", LOC_LIMESTONE]},
-      {verbs: ['VIEW'], action: ["goto", LOC_BREATHTAKING]},
-      {verbs: ['BARRE'], action: ["goto", LOC_BARRENFRONT]},
+      {verbs: ['WEST'], action: [goto, LOC_CORRIDOR]},
+      {verbs: ['NE', 'LEFT'], action: [goto, LOC_WARMWALLS]},
+      {verbs: ['SE', 'RIGHT', 'D'], action: [goto, LOC_LIMESTONE]},
+      {verbs: ['VIEW'], action: [goto, LOC_BREATHTAKING]},
+      {verbs: ['BARRE'], action: [goto, LOC_BARRENFRONT]},
     ]
 - LOC_WARMWALLS:
     description:
@@ -1840,9 +1856,9 @@ locations: !!omap
     conditions: {NOARRR: true, DEEP: true}
     sound: LOUD_ROAR
     travel: [
-      {verbs: ['SOUTH', 'FORK'], action: ["goto", LOC_FORK]},
-      {verbs: ['NORTH', 'VIEW'], action: ["goto", LOC_BREATHTAKING]},
-      {verbs: ['EAST', 'CRAWL'], action: ["goto", LOC_BOULDERS2]},
+      {verbs: ['SOUTH', 'FORK'], action: [goto, LOC_FORK]},
+      {verbs: ['NORTH', 'VIEW'], action: [goto, LOC_BREATHTAKING]},
+      {verbs: ['EAST', 'CRAWL'], action: [goto, LOC_BOULDERS2]},
     ]
 - LOC_BREATHTAKING:
     description:
@@ -1853,10 +1869,10 @@ locations: !!omap
     sound: TOTAL_ROAR
     loud: true
     travel: [
-      {verbs: ['SOUTH', 'PASSA', 'OUT'], action: ["goto", LOC_WARMWALLS]},
-      {verbs: ['FORK'], action: ["goto", LOC_FORK]},
+      {verbs: ['SOUTH', 'PASSA', 'OUT'], action: [goto, LOC_WARMWALLS]},
+      {verbs: ['FORK'], action: [goto, LOC_FORK]},
       {verbs: ['D'], action: ["speak", RIDICULOUS_ATTEMPT]},
-      {verbs: ['JUMP'], action: ["goto", LOC_GRUESOME]},
+      {verbs: ['JUMP'], action: [goto, LOC_GRUESOME]},
     ]
 - LOC_BOULDERS2:
     description:
@@ -1865,9 +1881,9 @@ locations: !!omap
     conditions: {NOARRR: true, DEEP: true}
     sound: DULL_RUMBLING
     travel: [
-      {verbs: ['WEST', 'OUT', 'CRAWL'], action: ["goto", LOC_WARMWALLS]},
-      {verbs: ['FORK'], action: ["goto", LOC_FORK]},
-      {verbs: ['VIEW'], action: ["goto", LOC_BREATHTAKING]},
+      {verbs: ['WEST', 'OUT', 'CRAWL'], action: [goto, LOC_WARMWALLS]},
+      {verbs: ['FORK'], action: [goto, LOC_FORK]},
+      {verbs: ['VIEW'], action: [goto, LOC_BREATHTAKING]},
     ]
 - LOC_LIMESTONE:
     description:
@@ -1875,9 +1891,9 @@ locations: !!omap
       short: 'You''re in limestone passage.'
     conditions: {NOARRR: true, DEEP: true}
     travel: [
-      {verbs: ['NORTH', 'UPWAR', 'FORK'], action: ["goto", LOC_FORK]},
-      {verbs: ['SOUTH', 'D', 'BARRE'], action: ["goto", LOC_BARRENFRONT]},
-      {verbs: ['VIEW'], action: ["goto", LOC_BREATHTAKING]},
+      {verbs: ['NORTH', 'UPWAR', 'FORK'], action: [goto, LOC_FORK]},
+      {verbs: ['SOUTH', 'D', 'BARRE'], action: [goto, LOC_BARRENFRONT]},
+      {verbs: ['VIEW'], action: [goto, LOC_BREATHTAKING]},
     ]
 - LOC_BARRENFRONT:
     description:
@@ -1885,10 +1901,10 @@ locations: !!omap
       short: 'You''re in front of Barren Room.'
     conditions: {NOARRR: true, DEEP: true}
     travel: [
-      {verbs: ['WEST', 'UPWAR'], action: ["goto", LOC_LIMESTONE]},
-      {verbs: ['FORK'], action: ["goto", LOC_FORK]},
-      {verbs: ['EAST', 'INWAR', 'BARRE', 'ENTER'], action: ["goto", LOC_BARRENROOM]},
-      {verbs: ['VIEW'], action: ["goto", LOC_BREATHTAKING]},
+      {verbs: ['WEST', 'UPWAR'], action: [goto, LOC_LIMESTONE]},
+      {verbs: ['FORK'], action: [goto, LOC_FORK]},
+      {verbs: ['EAST', 'INWAR', 'BARRE', 'ENTER'], action: [goto, LOC_BARRENROOM]},
+      {verbs: ['VIEW'], action: [goto, LOC_BREATHTAKING]},
     ]
 - LOC_BARRENROOM:
     description:
@@ -1896,9 +1912,9 @@ locations: !!omap
       short: 'You''re in Barren Room.'
     conditions: {NOARRR: true, DEEP: true}
     travel: [
-      {verbs: ['WEST', 'OUT'], action: ["goto", LOC_BARRENFRONT]},
-      {verbs: ['FORK'], action: ["goto", LOC_FORK]},
-      {verbs: ['VIEW'], action: ["goto", LOC_BREATHTAKING]},
+      {verbs: ['WEST', 'OUT'], action: [goto, LOC_BARRENFRONT]},
+      {verbs: ['FORK'], action: [goto, LOC_FORK]},
+      {verbs: ['VIEW'], action: [goto, LOC_BREATHTAKING]},
     ]
 - LOC_DIFFERENT3:
     description:
@@ -1906,16 +1922,16 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true, NOBACK: true}
     travel: [
-      {verbs: ['WEST'], action: ["goto", LOC_DIFFERENT1]},
-      {verbs: ['SE'], action: ["goto", LOC_DIFFERENT4]},
-      {verbs: ['NW'], action: ["goto", LOC_DIFFERENT5]},
-      {verbs: ['SW'], action: ["goto", LOC_DIFFERENT6]},
-      {verbs: ['NE'], action: ["goto", LOC_DIFFERENT7]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_DIFFERENT8]},
-      {verbs: ['D'], action: ["goto", LOC_DIFFERENT9]},
-      {verbs: ['NORTH'], action: ["goto", LOC_DIFFERENT10]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_DIFFERENT11]},
-      {verbs: ['EAST'], action: ["goto", LOC_DIFFERENT2]},
+      {verbs: ['WEST'], action: [goto, LOC_DIFFERENT1]},
+      {verbs: ['SE'], action: [goto, LOC_DIFFERENT4]},
+      {verbs: ['NW'], action: [goto, LOC_DIFFERENT5]},
+      {verbs: ['SW'], action: [goto, LOC_DIFFERENT6]},
+      {verbs: ['NE'], action: [goto, LOC_DIFFERENT7]},
+      {verbs: ['UPWAR'], action: [goto, LOC_DIFFERENT8]},
+      {verbs: ['D'], action: [goto, LOC_DIFFERENT9]},
+      {verbs: ['NORTH'], action: [goto, LOC_DIFFERENT10]},
+      {verbs: ['SOUTH'], action: [goto, LOC_DIFFERENT11]},
+      {verbs: ['EAST'], action: [goto, LOC_DIFFERENT2]},
     ]
 - LOC_DIFFERENT4:
     description:
@@ -1923,16 +1939,16 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true, NOBACK: true}
     travel: [
-      {verbs: ['NW'], action: ["goto", LOC_DIFFERENT1]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_DIFFERENT3]},
-      {verbs: ['NORTH'], action: ["goto", LOC_DIFFERENT5]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_DIFFERENT6]},
-      {verbs: ['WEST'], action: ["goto", LOC_DIFFERENT7]},
-      {verbs: ['SW'], action: ["goto", LOC_DIFFERENT8]},
-      {verbs: ['NE'], action: ["goto", LOC_DIFFERENT9]},
-      {verbs: ['EAST'], action: ["goto", LOC_DIFFERENT10]},
-      {verbs: ['D'], action: ["goto", LOC_DIFFERENT11]},
-      {verbs: ['SE'], action: ["goto", LOC_DIFFERENT2]},
+      {verbs: ['NW'], action: [goto, LOC_DIFFERENT1]},
+      {verbs: ['UPWAR'], action: [goto, LOC_DIFFERENT3]},
+      {verbs: ['NORTH'], action: [goto, LOC_DIFFERENT5]},
+      {verbs: ['SOUTH'], action: [goto, LOC_DIFFERENT6]},
+      {verbs: ['WEST'], action: [goto, LOC_DIFFERENT7]},
+      {verbs: ['SW'], action: [goto, LOC_DIFFERENT8]},
+      {verbs: ['NE'], action: [goto, LOC_DIFFERENT9]},
+      {verbs: ['EAST'], action: [goto, LOC_DIFFERENT10]},
+      {verbs: ['D'], action: [goto, LOC_DIFFERENT11]},
+      {verbs: ['SE'], action: [goto, LOC_DIFFERENT2]},
     ]
 - LOC_DIFFERENT5:
     description:
@@ -1940,16 +1956,16 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true, NOBACK: true}
     travel: [
-      {verbs: ['UPWAR'], action: ["goto", LOC_DIFFERENT1]},
-      {verbs: ['D'], action: ["goto", LOC_DIFFERENT3]},
-      {verbs: ['WEST'], action: ["goto", LOC_DIFFERENT4]},
-      {verbs: ['NE'], action: ["goto", LOC_DIFFERENT6]},
-      {verbs: ['SW'], action: ["goto", LOC_DIFFERENT7]},
-      {verbs: ['EAST'], action: ["goto", LOC_DIFFERENT8]},
-      {verbs: ['NORTH'], action: ["goto", LOC_DIFFERENT9]},
-      {verbs: ['NW'], action: ["goto", LOC_DIFFERENT10]},
-      {verbs: ['SE'], action: ["goto", LOC_DIFFERENT11]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_DIFFERENT2]},
+      {verbs: ['UPWAR'], action: [goto, LOC_DIFFERENT1]},
+      {verbs: ['D'], action: [goto, LOC_DIFFERENT3]},
+      {verbs: ['WEST'], action: [goto, LOC_DIFFERENT4]},
+      {verbs: ['NE'], action: [goto, LOC_DIFFERENT6]},
+      {verbs: ['SW'], action: [goto, LOC_DIFFERENT7]},
+      {verbs: ['EAST'], action: [goto, LOC_DIFFERENT8]},
+      {verbs: ['NORTH'], action: [goto, LOC_DIFFERENT9]},
+      {verbs: ['NW'], action: [goto, LOC_DIFFERENT10]},
+      {verbs: ['SE'], action: [goto, LOC_DIFFERENT11]},
+      {verbs: ['SOUTH'], action: [goto, LOC_DIFFERENT2]},
     ]
 - LOC_DIFFERENT6:
     description:
@@ -1957,16 +1973,16 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true, NOBACK: true}
     travel: [
-      {verbs: ['NE'], action: ["goto", LOC_DIFFERENT1]},
-      {verbs: ['NORTH'], action: ["goto", LOC_DIFFERENT3]},
-      {verbs: ['NW'], action: ["goto", LOC_DIFFERENT4]},
-      {verbs: ['SE'], action: ["goto", LOC_DIFFERENT5]},
-      {verbs: ['EAST'], action: ["goto", LOC_DIFFERENT7]},
-      {verbs: ['D'], action: ["goto", LOC_DIFFERENT8]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_DIFFERENT9]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_DIFFERENT10]},
-      {verbs: ['WEST'], action: ["goto", LOC_DIFFERENT11]},
-      {verbs: ['SW'], action: ["goto", LOC_DIFFERENT2]},
+      {verbs: ['NE'], action: [goto, LOC_DIFFERENT1]},
+      {verbs: ['NORTH'], action: [goto, LOC_DIFFERENT3]},
+      {verbs: ['NW'], action: [goto, LOC_DIFFERENT4]},
+      {verbs: ['SE'], action: [goto, LOC_DIFFERENT5]},
+      {verbs: ['EAST'], action: [goto, LOC_DIFFERENT7]},
+      {verbs: ['D'], action: [goto, LOC_DIFFERENT8]},
+      {verbs: ['SOUTH'], action: [goto, LOC_DIFFERENT9]},
+      {verbs: ['UPWAR'], action: [goto, LOC_DIFFERENT10]},
+      {verbs: ['WEST'], action: [goto, LOC_DIFFERENT11]},
+      {verbs: ['SW'], action: [goto, LOC_DIFFERENT2]},
     ]
 - LOC_DIFFERENT7:
     description:
@@ -1974,16 +1990,16 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true, NOBACK: true}
     travel: [
-      {verbs: ['NORTH'], action: ["goto", LOC_DIFFERENT1]},
-      {verbs: ['SE'], action: ["goto", LOC_DIFFERENT3]},
-      {verbs: ['D'], action: ["goto", LOC_DIFFERENT4]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_DIFFERENT5]},
-      {verbs: ['EAST'], action: ["goto", LOC_DIFFERENT6]},
-      {verbs: ['WEST'], action: ["goto", LOC_DIFFERENT8]},
-      {verbs: ['SW'], action: ["goto", LOC_DIFFERENT9]},
-      {verbs: ['NE'], action: ["goto", LOC_DIFFERENT10]},
-      {verbs: ['NW'], action: ["goto", LOC_DIFFERENT11]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_DIFFERENT2]},
+      {verbs: ['NORTH'], action: [goto, LOC_DIFFERENT1]},
+      {verbs: ['SE'], action: [goto, LOC_DIFFERENT3]},
+      {verbs: ['D'], action: [goto, LOC_DIFFERENT4]},
+      {verbs: ['SOUTH'], action: [goto, LOC_DIFFERENT5]},
+      {verbs: ['EAST'], action: [goto, LOC_DIFFERENT6]},
+      {verbs: ['WEST'], action: [goto, LOC_DIFFERENT8]},
+      {verbs: ['SW'], action: [goto, LOC_DIFFERENT9]},
+      {verbs: ['NE'], action: [goto, LOC_DIFFERENT10]},
+      {verbs: ['NW'], action: [goto, LOC_DIFFERENT11]},
+      {verbs: ['UPWAR'], action: [goto, LOC_DIFFERENT2]},
     ]
 - LOC_DIFFERENT8:
     description:
@@ -1991,16 +2007,16 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true, NOBACK: true}
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_DIFFERENT1]},
-      {verbs: ['WEST'], action: ["goto", LOC_DIFFERENT3]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_DIFFERENT4]},
-      {verbs: ['SW'], action: ["goto", LOC_DIFFERENT5]},
-      {verbs: ['D'], action: ["goto", LOC_DIFFERENT6]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_DIFFERENT7]},
-      {verbs: ['NW'], action: ["goto", LOC_DIFFERENT9]},
-      {verbs: ['SE'], action: ["goto", LOC_DIFFERENT10]},
-      {verbs: ['NE'], action: ["goto", LOC_DIFFERENT11]},
-      {verbs: ['NORTH'], action: ["goto", LOC_DIFFERENT2]},
+      {verbs: ['EAST'], action: [goto, LOC_DIFFERENT1]},
+      {verbs: ['WEST'], action: [goto, LOC_DIFFERENT3]},
+      {verbs: ['UPWAR'], action: [goto, LOC_DIFFERENT4]},
+      {verbs: ['SW'], action: [goto, LOC_DIFFERENT5]},
+      {verbs: ['D'], action: [goto, LOC_DIFFERENT6]},
+      {verbs: ['SOUTH'], action: [goto, LOC_DIFFERENT7]},
+      {verbs: ['NW'], action: [goto, LOC_DIFFERENT9]},
+      {verbs: ['SE'], action: [goto, LOC_DIFFERENT10]},
+      {verbs: ['NE'], action: [goto, LOC_DIFFERENT11]},
+      {verbs: ['NORTH'], action: [goto, LOC_DIFFERENT2]},
     ]
 - LOC_DIFFERENT9:
     description:
@@ -2008,16 +2024,16 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true, NOBACK: true}
     travel: [
-      {verbs: ['SE'], action: ["goto", LOC_DIFFERENT1]},
-      {verbs: ['NE'], action: ["goto", LOC_DIFFERENT3]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_DIFFERENT4]},
-      {verbs: ['D'], action: ["goto", LOC_DIFFERENT5]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_DIFFERENT6]},
-      {verbs: ['NW'], action: ["goto", LOC_DIFFERENT7]},
-      {verbs: ['NORTH'], action: ["goto", LOC_DIFFERENT8]},
-      {verbs: ['SW'], action: ["goto", LOC_DIFFERENT10]},
-      {verbs: ['EAST'], action: ["goto", LOC_DIFFERENT11]},
-      {verbs: ['WEST'], action: ["goto", LOC_DIFFERENT2]},
+      {verbs: ['SE'], action: [goto, LOC_DIFFERENT1]},
+      {verbs: ['NE'], action: [goto, LOC_DIFFERENT3]},
+      {verbs: ['SOUTH'], action: [goto, LOC_DIFFERENT4]},
+      {verbs: ['D'], action: [goto, LOC_DIFFERENT5]},
+      {verbs: ['UPWAR'], action: [goto, LOC_DIFFERENT6]},
+      {verbs: ['NW'], action: [goto, LOC_DIFFERENT7]},
+      {verbs: ['NORTH'], action: [goto, LOC_DIFFERENT8]},
+      {verbs: ['SW'], action: [goto, LOC_DIFFERENT10]},
+      {verbs: ['EAST'], action: [goto, LOC_DIFFERENT11]},
+      {verbs: ['WEST'], action: [goto, LOC_DIFFERENT2]},
     ]
 - LOC_DIFFERENT10:
     description:
@@ -2025,16 +2041,16 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true, NOBACK: true}
     travel: [
-      {verbs: ['D'], action: ["goto", LOC_DIFFERENT1]},
-      {verbs: ['EAST'], action: ["goto", LOC_DIFFERENT3]},
-      {verbs: ['NE'], action: ["goto", LOC_DIFFERENT4]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_DIFFERENT5]},
-      {verbs: ['WEST'], action: ["goto", LOC_DIFFERENT6]},
-      {verbs: ['NORTH'], action: ["goto", LOC_DIFFERENT7]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_DIFFERENT8]},
-      {verbs: ['SE'], action: ["goto", LOC_DIFFERENT9]},
-      {verbs: ['SW'], action: ["goto", LOC_DIFFERENT11]},
-      {verbs: ['NW'], action: ["goto", LOC_DIFFERENT2]},
+      {verbs: ['D'], action: [goto, LOC_DIFFERENT1]},
+      {verbs: ['EAST'], action: [goto, LOC_DIFFERENT3]},
+      {verbs: ['NE'], action: [goto, LOC_DIFFERENT4]},
+      {verbs: ['UPWAR'], action: [goto, LOC_DIFFERENT5]},
+      {verbs: ['WEST'], action: [goto, LOC_DIFFERENT6]},
+      {verbs: ['NORTH'], action: [goto, LOC_DIFFERENT7]},
+      {verbs: ['SOUTH'], action: [goto, LOC_DIFFERENT8]},
+      {verbs: ['SE'], action: [goto, LOC_DIFFERENT9]},
+      {verbs: ['SW'], action: [goto, LOC_DIFFERENT11]},
+      {verbs: ['NW'], action: [goto, LOC_DIFFERENT2]},
     ]
 - LOC_DIFFERENT11:
     description:
@@ -2042,16 +2058,16 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true, NOBACK: true}
     travel: [
-      {verbs: ['SW'], action: ["goto", LOC_DIFFERENT1]},
-      {verbs: ['NW'], action: ["goto", LOC_DIFFERENT3]},
-      {verbs: ['EAST'], action: ["goto", LOC_DIFFERENT4]},
-      {verbs: ['WEST'], action: ["goto", LOC_DIFFERENT5]},
-      {verbs: ['NORTH'], action: ["goto", LOC_DIFFERENT6]},
-      {verbs: ['D'], action: ["goto", LOC_DIFFERENT7]},
-      {verbs: ['SE'], action: ["goto", LOC_DIFFERENT8]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_DIFFERENT9]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_DIFFERENT10]},
-      {verbs: ['NE'], action: ["goto", LOC_DIFFERENT2]},
+      {verbs: ['SW'], action: [goto, LOC_DIFFERENT1]},
+      {verbs: ['NW'], action: [goto, LOC_DIFFERENT3]},
+      {verbs: ['EAST'], action: [goto, LOC_DIFFERENT4]},
+      {verbs: ['WEST'], action: [goto, LOC_DIFFERENT5]},
+      {verbs: ['NORTH'], action: [goto, LOC_DIFFERENT6]},
+      {verbs: ['D'], action: [goto, LOC_DIFFERENT7]},
+      {verbs: ['SE'], action: [goto, LOC_DIFFERENT8]},
+      {verbs: ['UPWAR'], action: [goto, LOC_DIFFERENT9]},
+      {verbs: ['SOUTH'], action: [goto, LOC_DIFFERENT10]},
+      {verbs: ['NE'], action: [goto, LOC_DIFFERENT2]},
     ]
 - LOC_DEADEND13:
     description:
@@ -2059,9 +2075,9 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['NORTH', 'OUT'], action: ["goto", LOC_DIFFERENT2]},
-      {verbs: ['SOUTH'], cond: [not OBJ_38 0], action: ["goto", LOC_ROUGHHEWN]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_BADDIRECTION]},
+      {verbs: ['NORTH', 'OUT'], action: [goto, LOC_DIFFERENT2]},
+      {verbs: ['SOUTH'], cond: [not, VEND, VEND_BLOCKS], action: [goto, LOC_ROUGHHEWN]},
+      {verbs: ['SOUTH'], action: [goto, LOC_BADDIRECTION]},
     ]
 - LOC_ROUGHHEWN:
     description:
@@ -2069,8 +2085,8 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['NORTH'], action: ["goto", LOC_DEADEND13]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_LARGE]},
+      {verbs: ['NORTH'], action: [goto, LOC_DEADEND13]},
+      {verbs: ['SOUTH'], action: [goto, LOC_LARGE]},
     ]
 - LOC_BADDIRECTION:
     description:
@@ -2078,7 +2094,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_DEADEND13]},
+      {verbs: [], action: [goto, LOC_DEADEND13]},
     ]
 - LOC_LARGE:
     description:
@@ -2087,9 +2103,9 @@ locations: !!omap
     conditions: {DEEP: true}
     hints: [*ogre]
     travel: [
-      {verbs: ['WEST'], action: ["goto", LOC_ROUGHHEWN]},
-      {verbs: ['NORTH'], cond: [with OBJ_41], action: ["speak", OGRE_SNARL]},
-      {verbs: ['NORTH'], action: ["goto", LOC_STOREROOM]},
+      {verbs: ['WEST'], action: [goto, LOC_ROUGHHEWN]},
+      {verbs: ['NORTH'], cond: [with, OGRE], action: ["speak", OGRE_SNARL]},
+      {verbs: ['NORTH'], action: [goto, LOC_STOREROOM]},
     ]
 - LOC_STOREROOM:
     description:
@@ -2097,7 +2113,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SOUTH', 'OUT'], action: ["goto", LOC_LARGE]},
+      {verbs: ['SOUTH', 'OUT'], action: [goto, LOC_LARGE]},
     ]
 - LOC_FOREST1:
     description:
@@ -2106,10 +2122,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_START]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST13]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST2]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST3]},
+      {verbs: ['EAST'], action: [goto, LOC_START]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST13]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST2]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST3]},
     ]
 - LOC_FOREST2:
     description:
@@ -2118,10 +2134,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST1]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST19]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST3]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST18]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST1]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST19]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST3]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST18]},
     ]
 - LOC_FOREST3:
     description:
@@ -2130,9 +2146,9 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST', 'WEST'], action: ["goto", LOC_FOREST4]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST2]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST1]},
+      {verbs: ['EAST', 'WEST'], action: [goto, LOC_FOREST4]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST2]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST1]},
     ]
 - LOC_FOREST4:
     description:
@@ -2141,8 +2157,8 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST', 'NORTH'], action: ["goto", LOC_FOREST3]},
-      {verbs: ['WEST', 'SOUTH'], action: ["goto", LOC_FOREST5]},
+      {verbs: ['EAST', 'NORTH'], action: [goto, LOC_FOREST3]},
+      {verbs: ['WEST', 'SOUTH'], action: [goto, LOC_FOREST5]},
     ]
 - LOC_FOREST5:
     description:
@@ -2151,9 +2167,9 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST', 'NORTH'], action: ["goto", LOC_FOREST4]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST7]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST6]},
+      {verbs: ['EAST', 'NORTH'], action: [goto, LOC_FOREST4]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST7]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST6]},
     ]
 - LOC_FOREST6:
     description:
@@ -2162,10 +2178,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST5]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST7]},
-      {verbs: ['NORTH'], action: ["goto", LOC_VALLEY]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_SLIT]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST5]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST7]},
+      {verbs: ['NORTH'], action: [goto, LOC_VALLEY]},
+      {verbs: ['SOUTH'], action: [goto, LOC_SLIT]},
     ]
 - LOC_FOREST7:
     description:
@@ -2174,10 +2190,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST5]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST6]},
-      {verbs: ['NORTH'], action: ["goto", LOC_GRATE]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST8]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST5]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST6]},
+      {verbs: ['NORTH'], action: [goto, LOC_GRATE]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST8]},
     ]
 - LOC_FOREST8:
     description:
@@ -2186,10 +2202,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST9]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST11]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST22]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST7]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST9]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST11]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST22]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST7]},
     ]
 - LOC_FOREST9:
     description:
@@ -2198,10 +2214,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST11]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST8]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST10]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_GRATE]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST11]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST8]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST10]},
+      {verbs: ['SOUTH'], action: [goto, LOC_GRATE]},
     ]
 - LOC_FOREST10:
     description:
@@ -2210,10 +2226,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_SLIT]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST11]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST9]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_GRATE]},
+      {verbs: ['EAST'], action: [goto, LOC_SLIT]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST11]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST9]},
+      {verbs: ['SOUTH'], action: [goto, LOC_GRATE]},
     ]
 - LOC_FOREST11:
     description:
@@ -2222,10 +2238,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST10]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST8]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST22]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST9]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST10]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST8]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST22]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST9]},
     ]
 - LOC_FOREST12:
     description:
@@ -2234,10 +2250,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST13]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST14]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST22]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_VALLEY]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST13]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST14]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST22]},
+      {verbs: ['SOUTH'], action: [goto, LOC_VALLEY]},
     ]
 - LOC_FOREST13:
     description:
@@ -2246,10 +2262,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST1]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST12]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST20]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_HILL]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST1]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST12]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST20]},
+      {verbs: ['SOUTH'], action: [goto, LOC_HILL]},
     ]
 - LOC_FOREST14:
     description:
@@ -2258,10 +2274,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_ROADEND]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST16]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST15]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST12]},
+      {verbs: ['EAST'], action: [goto, LOC_ROADEND]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST16]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST15]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST12]},
     ]
 - LOC_FOREST15:
     description:
@@ -2270,10 +2286,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST16]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST22]},
-      {verbs: ['NORTH'], action: ["goto", LOC_ROADEND]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST14]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST16]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST22]},
+      {verbs: ['NORTH'], action: [goto, LOC_ROADEND]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST14]},
     ]
 - LOC_FOREST16:
     description:
@@ -2282,9 +2298,9 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST', 'NORTH'], action: ["goto", LOC_FOREST17]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST14]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST15]},
+      {verbs: ['EAST', 'NORTH'], action: [goto, LOC_FOREST17]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST14]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST15]},
     ]
 - LOC_FOREST17:
     description:
@@ -2293,9 +2309,9 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST18]},
-      {verbs: ['WEST', 'SOUTH'], action: ["goto", LOC_FOREST16]},
-      {verbs: ['NORTH'], action: ["goto", LOC_CLIFF]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST18]},
+      {verbs: ['WEST', 'SOUTH'], action: [goto, LOC_FOREST16]},
+      {verbs: ['NORTH'], action: [goto, LOC_CLIFF]},
     ]
 - LOC_FOREST18:
     description:
@@ -2304,10 +2320,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST19]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST17]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST2]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST21]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST19]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST17]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST2]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST21]},
     ]
 - LOC_FOREST19:
     description:
@@ -2316,10 +2332,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST2]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST18]},
-      {verbs: ['NORTH'], action: ["goto", LOC_CLIFF]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST20]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST2]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST18]},
+      {verbs: ['NORTH'], action: [goto, LOC_CLIFF]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST20]},
     ]
 - LOC_FOREST20:
     description:
@@ -2328,10 +2344,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_HILL]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST21]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST19]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST13]},
+      {verbs: ['EAST'], action: [goto, LOC_HILL]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST21]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST19]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST13]},
     ]
 - LOC_FOREST21:
     description:
@@ -2340,10 +2356,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST20]},
-      {verbs: ['WEST'], action: ["goto", LOC_ROADEND]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST18]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST21]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST20]},
+      {verbs: ['WEST'], action: [goto, LOC_ROADEND]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST18]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST21]},
     ]
 - LOC_FOREST22:
     description:
@@ -2352,10 +2368,10 @@ locations: !!omap
     conditions: {FOREST: true, NOBACK: true, LIT: true}
     hints: [*forest]
     travel: [
-      {verbs: ['EAST'], action: ["goto", LOC_FOREST8]},
-      {verbs: ['WEST'], action: ["goto", LOC_FOREST11]},
-      {verbs: ['NORTH'], action: ["goto", LOC_FOREST15]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_FOREST12]},
+      {verbs: ['EAST'], action: [goto, LOC_FOREST8]},
+      {verbs: ['WEST'], action: [goto, LOC_FOREST11]},
+      {verbs: ['NORTH'], action: [goto, LOC_FOREST15]},
+      {verbs: ['SOUTH'], action: [goto, LOC_FOREST12]},
     ]
 - LOC_LEDGE:
     description:
@@ -2363,7 +2379,7 @@ locations: !!omap
       short: 'You''re on ledge.'
     conditions: {ABOVE: true, LIT: true}
     travel: [
-      {verbs: ['JUMP'], action: ["goto", LOC_NOMAKE]},
+      {verbs: ['JUMP'], action: [goto, LOC_NOMAKE]},
     ]
 - LOC_RESBOTTOM:
     description:
@@ -2373,8 +2389,8 @@ locations: !!omap
     sound: TOTAL_ROAR
     loud: true
     travel: [
-      {verbs: ['NORTH'], action: ["goto", LOC_RESNORTH]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_RESERVOIR]},
+      {verbs: ['NORTH'], action: [goto, LOC_RESNORTH]},
+      {verbs: ['SOUTH'], action: [goto, LOC_RESERVOIR]},
     ]
 - LOC_RESNORTH:
     description:
@@ -2383,9 +2399,9 @@ locations: !!omap
     conditions: {FLUID: true, DEEP: true}
     sound: WATERS_CRASHING
     travel: [
-      {verbs: ['SOUTH', 'ACROS', 'CROSS'], cond: [not OBJ_45 1], action: ["speak", BAD_DIRECTION]},
-      {verbs: ['SOUTH'], action: ["goto", LOC_RESBOTTOM]},
-      {verbs: ['NW', 'UPWAR', 'OUT'], action: ["goto", LOC_TREACHEROUS]},
+      {verbs: ['SOUTH', 'ACROS', 'CROSS'], cond: [not, RESER, WATERS_PARTED], action: ["speak", BAD_DIRECTION]},
+      {verbs: ['SOUTH'], action: [goto, LOC_RESBOTTOM]},
+      {verbs: ['NW', 'UPWAR', 'OUT'], action: [goto, LOC_TREACHEROUS]},
     ]
 - LOC_TREACHEROUS:
     description:
@@ -2393,8 +2409,8 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['UPWAR', 'NW'], action: ["goto", LOC_STEEP]},
-      {verbs: ['D', 'SE'], action: ["goto", LOC_RESNORTH]},
+      {verbs: ['UPWAR', 'NW'], action: [goto, LOC_STEEP]},
+      {verbs: ['D', 'SE'], action: [goto, LOC_RESNORTH]},
     ]
 - LOC_STEEP:
     description:
@@ -2402,8 +2418,8 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['D', 'SE'], action: ["goto", LOC_TREACHEROUS]},
-      {verbs: ['UPWAR', 'NW'], action: ["goto", LOC_CLIFFBASE]},
+      {verbs: ['D', 'SE'], action: [goto, LOC_TREACHEROUS]},
+      {verbs: ['UPWAR', 'NW'], action: [goto, LOC_CLIFFBASE]},
     ]
 - LOC_CLIFFBASE:
     description:
@@ -2411,8 +2427,8 @@ locations: !!omap
       short: 'You''re at base of cliff.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['D', 'SE'], action: ["goto", LOC_STEEP]},
-      {verbs: ['UPWAR', 'CLIMB'], action: ["goto", LOC_CLIFFACE]},
+      {verbs: ['D', 'SE'], action: [goto, LOC_STEEP]},
+      {verbs: ['UPWAR', 'CLIMB'], action: [goto, LOC_CLIFFACE]},
     ]
 - LOC_CLIFFACE:
     description:
@@ -2420,9 +2436,9 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['D'], action: ["goto", LOC_CLIFFBASE]},
-      {verbs: ['UPWAR'], cond: [carry OBJ_46], action: ["goto", LOC_CLIFFTOP]},
-      {verbs: ['UPWAR'], action: ["goto", LOC_FOOTSLIP]},
+      {verbs: ['D'], action: [goto, LOC_CLIFFBASE]},
+      {verbs: ['UPWAR'], cond: [carry, OBJ_46], action: [goto, LOC_CLIFFTOP]},
+      {verbs: ['UPWAR'], action: [goto, LOC_FOOTSLIP]},
     ]
 - LOC_FOOTSLIP:
     description:
@@ -2430,7 +2446,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_NOWHERE]},
+      {verbs: [], action: [goto, LOC_NOWHERE]},
     ]
 - LOC_CLIFFTOP:
     description:
@@ -2438,7 +2454,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_CLIFFLEDGE]},
+      {verbs: [], action: [goto, LOC_CLIFFLEDGE]},
     ]
 - LOC_CLIFFLEDGE:
     description:
@@ -2446,8 +2462,8 @@ locations: !!omap
       short: 'You''re at top of cliff.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['CLIMB', 'D'], action: ["goto", LOC_CLIFFACE]},
-      {verbs: ['NE', 'CRAWL'], action: ["goto", LOC_REACHDEAD]},
+      {verbs: ['CLIMB', 'D'], action: [goto, LOC_CLIFFACE]},
+      {verbs: ['NE', 'CRAWL'], action: [goto, LOC_REACHDEAD]},
     ]
 - LOC_REACHDEAD:
     description:
@@ -2455,7 +2471,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SW', 'OUT', 'CRAWL'], action: ["goto", LOC_CLIFFLEDGE]},
+      {verbs: ['SW', 'OUT', 'CRAWL'], action: [goto, LOC_CLIFFLEDGE]},
     ]
 - LOC_GRUESOME:
     description:
@@ -2463,7 +2479,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_NOWHERE]},
+      {verbs: [], action: [goto, LOC_NOWHERE]},
     ]
 - LOC_FOOF1:
     description:
@@ -2471,7 +2487,7 @@ locations: !!omap
       short: !!null
     conditions: {}
     travel: [
-      {verbs: [], action: ["goto", LOC_DEBRIS]},
+      {verbs: [], action: [goto, LOC_DEBRIS]},
     ]
 - LOC_FOOF2:
     description:
@@ -2479,7 +2495,7 @@ locations: !!omap
       short: !!null
     conditions: {ABOVE: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_BUILDING]},
+      {verbs: [], action: [goto, LOC_BUILDING]},
     ]
 - LOC_FOOF3:
     description:
@@ -2487,7 +2503,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_Y2]},
+      {verbs: [], action: [goto, LOC_Y2]},
     ]
 - LOC_FOOF4:
     description:
@@ -2495,7 +2511,7 @@ locations: !!omap
       short: !!null
     conditions: {ABOVE: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_BUILDING]},
+      {verbs: [], action: [goto, LOC_BUILDING]},
     ]
 - LOC_FOOF5:
     description:
@@ -2503,17 +2519,20 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_PLOVER]},
+      {verbs: [], action: [goto, LOC_PLOVER]},
     ]
 - LOC_FOOF6:
     description:
       long: '>>Foof!<<'
       short: !!null
     conditions: {DEEP: true}
+    travel: [
+      {verbs: [], action: [goto, LOC_Y2]},
+    ]
 
 arbitrary_messages:  !!omap
 - NO_MESSAGE: !!null
-- CAVE_NEARBY: 'Somewhere nearby is Colossal Cave, where others have found fortunes in\ntreasure and gold, though it is rumored that some who enter are never\nseen again.  Magic is said to work in the cave.  I will be your eyes\nand hands.  Direct me with commands of 1 or 2 words.  I should warn\nyou that I look at only the first five letters of each word, so you''ll\nhave to enter "northeast" as "ne" to distinguish it from "north".\nYou can type "help" for some general hints.  For information on how\nto end your adventure, scoring, etc., type "info".\n\t\t\t      - - -\nThis program was originally developed by Willie Crowther.  Most of the\nfeatures of the current program were added by Don Woods.  Contact Don\nif you have any questions, comments, etc.'
+- CAVE_NEARBY: 'Somewhere nearby is Colossal Cave, where others have found fortunes in\ntreasure and gold, though it is rumored that some who enter are never\nseen again.  Magic is said to work in the cave.  I will be your eyes\nand hands.  Direct me with commands of 1 or 2 words.  I should warn\nyou that I look at only the first five letters of each word, so you''ll\nhave to enter "northeast" as "ne" to distinguish it from "north".\nYou can type "help" for some general hints.  For information on how\nto end your adventure, scoring, etc., type "info".\n\t\t\t      - - -\nThis program was originally developed by Willie Crowther.  Most of the\nfeatures of the current program were added by Don Woods.'
 - DWARF_BLOCK: 'A little dwarf with a big knife blocks your way.'
 - DWARF_RAN: 'A little dwarf just walked around a corner, saw you, threw a little\naxe at you which missed, cursed, and ran away.'
 - DWARF_PACK: 'There are %d threatening little dwarves in the room with you.'
@@ -2530,10 +2549,6 @@ arbitrary_messages:  !!omap
 - NO_MORE_DETAIL: 'Sorry, but I am not allowed to give more detail.  I will repeat the\nlong description of your location.'
 - PITCH_DARK: 'It is now pitch dark.  If you proceed you will likely fall into a pit.'
 - W_IS_WEST: 'If you prefer, simply type w rather than west.'
-- BIRD_QUERY: 'Are you trying to catch the bird?'
-- SKITTISH_BIRD: 'Something about you seems to be frightening the bird.  Perhaps you\nmight figure out what it is.'
-- SNAKE_QUERY: 'Are you trying to somehow deal with the snake?'
-- SNAKE_HINT: 'You can''t kill the snake, or drive it away, or avoid it, or anything\nlike that.  There is a way to get by, but you don''t have the necessary\nresources right now.'
 - REALLY_QUIT: 'Do you really want to quit now?'
 - PIT_FALL: 'You fell into a pit and broke every bone in your body!'
 - ALREADY_CARRYING: 'You are already carrying it!'
@@ -2547,12 +2562,8 @@ arbitrary_messages:  !!omap
 - NO_LOCK: 'It has no lock.'
 - NOT_LOCKABLE: 'I don''t know how to lock or unlock such a thing.'
 - ALREADY_LOCKED: 'It was already locked.'
-- GRATE_LOCKED: 'The grate is now locked.'
-- GRATE_UNLOCKED: 'The grate is now unlocked.'
 - ALREADY_UNLOCKED: 'It was already unlocked.'
 - URN_EMPTY: 'The urn is empty and will not light.'
-- LAMP_ON: 'Your lamp is now on.'
-- LAMP_OFF: 'Your lamp is now off.'
 - BEAR_BLOCKS: 'There is no way to get past the bear to unlock the chain, which is\nprobably just as well.'
 - NOTHING_HAPPENS: 'Nothing happens.'
 - WHERE_QUERY: 'Where?'
@@ -2574,8 +2585,6 @@ arbitrary_messages:  !!omap
 - NEARBY: 'I can only tell you what you see as you move about and manipulate\nthings.  I cannot tell you where remote things are.'
 - OGRE_SNARL: 'The ogre snarls and shoves you back.'
 - HUH_MAN: 'Huh?'
-- ENTRY_QUERY: 'Are you trying to get into the cave?'
-- HARD_GRATE: 'The grate is very solid and has a hardened steel lock.  You cannot\nenter without a key, and there are no keys nearby.  I would recommend\nlooking elsewhere for the keys.'
 - FOREST_LOOK: 'The trees of the forest are large hardwood oak and maple, with an\noccasional grove of pine or spruce.  There is quite a bit of under-\ngrowth, largely birch and ash saplings plus nondescript bushes of\nvarious sorts.  This time of year visibility is quite restricted by\nall the leaves, but travel is quite easy if you detour around the\nspruce and berry bushes.'
 - WELCOME_YOU: 'Welcome to Adventure!!  Would you like instructions?'
 - DIGGING_FUTILE: 'Digging without a shovel is quite impractical.  Even with a shovel\nprogress is unlikely.'
@@ -2593,16 +2602,6 @@ arbitrary_messages:  !!omap
 - CANT_POUR: 'You can''t pour that.'
 - WATCH_IT: 'Watch it!'
 - WHICH_WAY: 'Which way?'
-- ARB_81: !!null
-- ARB_82: !!null
-- ARB_83: !!null
-- ARB_84: !!null
-- ARB_85: !!null
-- ARB_86: !!null
-- ARB_87: !!null
-- ARB_88: !!null
-- ARB_89: !!null
-- ARB_90: !!null
 - FORGOT_PATH: 'Sorry, but I no longer seem to remember how it was you got here.'
 - CARRY_LIMIT: 'You can''t carry anything more.  You''ll have to drop something first.'
 - GRATE_NOWAY: 'You can''t go through a locked steel grate!'
@@ -2678,6 +2677,7 @@ arbitrary_messages:  !!omap
 - TROLL_SCAMPERS: 'The bear lumbers toward the troll, who lets out a startled shriek and\nscurries away.  The bear soon gives up the pursuit and wanders back.'
 - AXE_LOST: 'The axe misses and lands near the bear where you can''t get at it.'
 - BEAR_HANDS: 'With what?  Your bare hands?  Against *HIS* bear hands??'
+# The following three messages must be contiguous
 - BEAR_CONFUSED: 'The bear is confused; he only wants to be your friend.'
 - ALREADY_DEAD: 'For crying out loud, the poor thing is already dead!'
 - BEAR_TAMED: 'The bear eagerly wolfs down your food, after which he seems to calm\ndown considerably and even becomes rather friendly.'
@@ -2688,12 +2688,6 @@ arbitrary_messages:  !!omap
 - NO_LOCKSITE: 'There is nothing here to which the chain can be locked.'
 - NO_EDIBLES: 'There is nothing here to eat.'
 - WANT_HINT: 'Do you want the hint?'
-- MAZE_HELP: 'Do you need help getting out of the maze?'
-- DROP_THINGS: 'You can make the passages look less alike by dropping things.'
-- PLOVER_QUERY: 'Are you trying to explore beyond the plover room?'
-- EXPLORE_HINT: 'There is a way to explore that region without having to worry about\nfalling into a pit.  None of the objects available is immediately\nuseful in discovering the secret.'
-- HELP_LEAVING: 'Do you need help getting out of here?'
-- NOGO_WEST: 'Don''t go west.'
 - TROLL_VICES: 'Gluttony is not one of the troll''s vices.  Avarice, however, is.'
 - LAMP_DIM: 'Your lamp is getting dim.  You''d best start wrapping this up, unless\nyou can find some fresh batteries.  I seem to recall there''s a vending\nmachine in the maze.  Bring some coins with you.'
 - LAMP_OUT: 'Your lamp has run out of power.'
@@ -2703,10 +2697,8 @@ arbitrary_messages:  !!omap
 - REPLACE_BATTERIES: 'Your lamp is getting dim.  I''m taking the liberty of replacing the\nbatteries.'
 - MISSING_BATTERIES: 'Your lamp is getting dim, and you''re out of spare batteries.  You''d\nbest start wrapping this up.'
 - REMOVE_MESSAGE: 'You sift your fingers through the dust, but succeed only in\nobliterating the cryptic message.'
-- OGRE_QUERY: 'Do you need help dealing with the ogre?'
 - CLUE_QUERY: 'Hmmm, this looks like a clue, which means it''ll cost you 10 points to\nread it.  Should I go ahead and read it anyway?'
 - WAYOUT_CLUE: 'It says, "There is a way out of this place.  Do you need any more\ninformation to escape?  Sorry, but this initial hint is all you get."'
-- OGRE_CLUE: 'There is nothing the presence of which will prevent you from defeating\nhim; thus it can''t hurt to fetch everything you possibly can.'
 - DONT_UNDERSTAND: 'I''m afraid I don''t understand.'
 - HAND_PASSTHROUGH: 'Your hand passes through it as though it weren''t there.'
 - BREAK_MIRROR: 'You strike the mirror a resounding blow, whereupon it shatters into a\nmyriad tiny fragments.'
@@ -2719,6 +2711,7 @@ arbitrary_messages:  !!omap
 - OGRE_DODGE: 'The ogre, who despite his bulk is quite agile, easily dodges your\nattack.  He seems almost amused by your puny effort.'
 - OGRE_PANIC1: 'The ogre, distracted by your rush, is struck by the knife.  With a\nblood-curdling yell he turns and bounds after the dwarves, who flee\nin panic.  You are left alone in the room.'
 - OGRE_PANIC2: 'The ogre, distracted by your rush, is struck by the knife.  With a\nblood-curdling yell he turns and bounds after the dwarf, who flees\nin panic.  You are left alone in the room.'
+# Following three messages must be contiguous
 - FREE_FLY: 'The bird flies about agitatedly for a moment.'
 - CAGE_FLY: 'The bird flies agitatedly about the cage.'
 - NECKLACE_FLY: 'The bird flies about agitatedly for a moment, then disappears through\nthe crack.  It reappears shortly, carrying in its beak a jade\nnecklace, which it drops at your feet.'
@@ -2756,12 +2749,9 @@ arbitrary_messages:  !!omap
 - HEAD_BUZZES: 'Your head buzzes strangely for a moment.'
 - NOT_BRIGHT: '(Uh, y''know, that wasn''t very bright.)'
 - TOOK_LONG: 'It''s a pity you took so long about it.'
-- WONDERING_QUERY: 'Are you wondering what to do here?'
-- ADVANCED_SECTION: 'This section is quite advanced.  Find the cave first.'
 - UPSTREAM_DOWNSTREAM: 'Upstream or downstream?'
 - WIZARDS_NODISTURB: 'Wizards are not to be disturbed by such as you.'
-- FOREST_QUERY: 'Would you like to be shown out of the forest?'
-- GO_EAST: 'Go east ten times.  If that doesn''t get you out, then go south, then\nwest twice, then south.'
+- FOREST_QUERY: !!null
 - WATERS_CRASHING: 'The waters are crashing loudly against the shore.'
 - THROWN_KNIVES: '%d of them throw knives at you!'
 - MULTIPLE_HITS: '%d of them get you!'
@@ -2786,15 +2776,11 @@ arbitrary_messages:  !!omap
 # This message is not currently used
 - SAVE_TAMPERING: 'A dark fog creeps in to surround you.  From somewhere in the fog you\nhear a stern voice.  "This Adventure has been tampered with!  You have\nbeen dabbling in magic, knowing not the havoc you might cause thereby.\nLeave at once, before you do irrevocable harm!"  The fog thickens,\nuntil at last you can see nothing at all.  Your vision then clears,\nand you find yourself back in The Real World.'
 - GUESS_AGAIN: 'Guess again.'
-- MISSING_ONE: 'You''re missing only one other treasure.  Do you need help finding it?'
-- NO_LOCATE: 'Once you''ve found all the other treasures, it is no longer possible to\nlocate the one you''re now missing.'
 - TWIST_TURN: 'Sorry, but the path twisted and turned so much that I can''t figure\nout which way to go to get back.'
 - ADVENTURE_NEWS: 'Open Adventure is an author-approved open-source release of\nVersion 2.5 with, as yet, no gameplay changes.\nVersion 2.5 was essentially the same as Version II; the cave and the\nhazards therein are unchanged, and top score is still 430 points.\nThere are a few more hints, especially for some of the more obscure\npuzzles.  There are a few minor bugfixes and cosmetic changes.  You\ncan now save a game and resume it at once (formerly you had to wait a\nwhile first), but it now costs you a few points each time you save the\ngame.  Saved games are now stored in much smaller files than before.'
 - GO_UNNEEDED: 'You don''t have to say "go" every time; just specify a direction or, if\nit''s nearby, name the place to which you wish to move.'
-- CANNOT_CARRY7: !!null
-- MACHINE_SWINGOUT: 'As you strike the vending machine, it pivots backward along with a\nsection of wall, revealing a dark passage leading south.'
-- MACHINE_SWINGBACK: 'The vending machine swings back to block the passage.'
-  
+- ADVENTURE_VERSION: 'There is a puff of orange smoke; within it, fiery runes spell out:\n\n\tOpen Adventure %V - http://www.catb.org/esr/open-adventure/'
+
 classes: 
 - threshold: 0
   message: !!null
@@ -2833,54 +2819,68 @@ turn_thresholds:
   point_loss: 10
   message: 'Good grief, don''t you *EVER* give up?  Do you realize you''ve spent\nover 2500 turns at this?  That''s another ten points off, a total of\ntwenty points lost for taking so long.'
   
-object_descriptions: !!omap
+objects: !!omap
 - OBJ_0:
     inventory: !!null
-    longs: !!null
-- OBJ_1:
+    descriptions: !!null
+- KEYS:
+    words: ['keys', 'key']
     inventory: 'Set of keys'
     locations: LOC_BUILDING
-    longs:
+    descriptions:
     - 'There are some keys on the ground here.'
-- OBJ_2:
+- LAMP:
+    words: ['lamp', 'lante']
     inventory: 'Brass lantern'
     locations: LOC_BUILDING
-    longs:
+    descriptions:
     - [LAMP_DARK, 'There is a shiny brass lamp nearby.']
     - [LAMP_BRIGHT, 'There is a lamp shining nearby.']
-- OBJ_3:
+    changes:
+    - 'Your lamp is now off.'
+    - 'Your lamp is now on.'
+- GRATE:
+    words: ['grate']
     inventory: '*grate'
     locations: [LOC_GRATE, LOC_BELOWGRATE]
     immovable: true
-    longs:
+    descriptions:
     - [GRATE_CLOSED, 'The grate is locked.']
     - [GRATE_OPEN, 'The grate is open.']
-- OBJ_4:
+    changes:
+    - 'The grate is now locked.'
+    - 'The grate is now unlocked.'
+- CAGE:
+    words: ['cage']
     inventory: 'Wicker cage'
     locations: LOC_COBBLE
-    longs:
+    descriptions:
     - 'There is a small wicker cage discarded nearby.'
-- OBJ_5:
+- ROD:
+    words: ['rod']
     inventory: 'Black rod'
     locations: LOC_DEBRIS
-    longs:
+    descriptions:
     - 'A three foot black rod with a rusty star on an end lies nearby.'
-- OBJ_6:
+- ROD2:
+    words: ['rod']
     inventory: 'Black rod'
     locations: LOC_NOWHERE
-    longs:
+    descriptions:
     - 'A three foot black rod with a rusty mark on an end lies nearby.'
-- OBJ_7:
+- STEPS:
+    words: ['steps']
     inventory: '*steps'
     locations: [LOC_PITTOP, LOC_MISTHALL]
     immovable: true
-    longs:
+    descriptions:
     - 'Rough stone steps lead down the pit.'
     - 'Rough stone steps lead up the dome.'
-- OBJ_8:
+- BIRD:
+    words: ['bird']
     inventory: 'Little bird in cage'
     locations: LOC_BIRD
-    longs:
+    descriptions:
     - [BIRD_UNCAGED, 'A cheerful little bird is sitting here singing.']
     - [BIRD_CAGED, 'There is a little bird in the cage.']
     - [BIRD_FOREST_UNCAGED, 'A cheerful little bird is sitting here singing.']
@@ -2891,105 +2891,121 @@ object_descriptions: !!omap
     - 'To your surprise, you can understand the bird''s chirping; it is\nsinging about the joys of its forest home.'
     - 'The bird does not seem inclined to sing while in the cage.'
     - 'The bird is singing to you in gratitude for your having returned it to\nits home.  In return, it informs you of a magic word which it thinks\nyou may find useful somewhere near the Hall of Mists.  The magic word\nchanges frequently, but for now the bird believes it is "%s".  You\nthank the bird for this information, and it flies off into the forest.'
-- OBJ_9:
+- DOOR:
+    words: ['door']
     inventory: '*rusty door'
     locations: LOC_IMMENSE
     immovable: true
-    longs:
+    descriptions:
     - 'The way north is barred by a massive, rusty, iron door.'
     - 'The way north leads through a massive, rusty, iron door.'
-- OBJ_10:
+- PILLOW:
+    words: ['pillo', 'velve']
     inventory: 'Velvet pillow'
     locations: LOC_SOFTROOM
-    longs:
+    descriptions:
     - 'A small velvet pillow lies on the floor.'
-- OBJ_11:
+- SNAKE:
+    words: ['snake']
     inventory: '*snake'
     locations: LOC_KINGHALL
     immovable: true
-    longs:
-    - 'A huge green fierce snake bars the way!'
-    - '' # chased away
+    descriptions:
+    - [SNAKE_BLOCKS, 'A huge green fierce snake bars the way!']
+    - [SNAKE_CHASED, ''] # chased away
     sounds:
     - 'The snake is hissing venomously.'
-- OBJ_12:
+- FISSURE:
+    words: ['fissu']
     inventory: '*fissure'
     locations: [LOC_EASTBANK, LOC_WESTBANK]
     immovable: true
-    longs:
-    - ''
-    - 'A crystal bridge now spans the fissure.'
-    - 'The crystal bridge has vanished!'
+    descriptions:
+    - [UNBRIDGED, '']
+    - [BRIDGED, 'A crystal bridge now spans the fissure.']
+    - [VANISHED, 'The crystal bridge has vanished!']
 - OBJ_13:
+    words: ['table']
     inventory: '*stone tablet'
     locations: LOC_DARKROOM
     immovable: true
-    longs:
+    descriptions:
     - 'A massive stone tablet imbedded in the wall reads:\n"Congratulations on bringing light into the dark-room!"'
     texts:
     - '"Congratulations on bringing light into the dark-room!"'
-- OBJ_14:
+- CLAM:
+    words: ['clam']
     inventory: 'Giant clam  >GRUNT!<'
     locations: LOC_SHELLROOM
-    longs:
+    descriptions:
     - 'There is an enormous clam here with its shell tightly closed.'
     sounds:
     - 'The clam is as tight-mouthed as a, er, clam.'
-- OBJ_15:
+- OYSTER:
+    words: ['oyste']
     inventory: 'Giant oyster  >GROAN!<'
     locations: LOC_NOWHERE
-    longs:
+    descriptions:
     - 'There is an enormous oyster here with its shell tightly closed.'
     - 'Interesting.  There seems to be something written on the underside of\nthe oyster.'
     sounds:
     - 'Even though it''s an oyster, the critter''s as tight-mouthed as a clam.'
     - 'It says the same thing it did before.  Hm, maybe it''s a pun?'
-- OBJ_16:
+- MAGAZINE:
+    words: ['magaz', 'issue', 'spelu', '"spel']
     inventory: '"Spelunker Today"'
     locations: LOC_ANTEROOM
-    longs:
+    descriptions:
     - 'There are a few recent issues of "Spelunker Today" magazine here.'
     texts:
     - 'I''m afraid the magazine is written in dwarvish.  But pencilled on one\ncover you see, "Please leave the magazines at the construction site."'
-- OBJ_17:
+- DWARF:
+    words: ['dwarf', 'dwarv']
     inventory: !!null
     locations: LOC_NOWHERE
     immovable: true
-    longs: !!null
-- OBJ_18:
+    descriptions: !!null
+- KNIFE:
+    words: ['knife', 'knive']
     inventory: !!null
     locations: LOC_NOWHERE
-    longs: !!null
-- OBJ_19:
+    descriptions: !!null
+- FOOD:
+    words: ['food', 'ratio']
     inventory: 'Tasty food'
     locations: LOC_BUILDING
-    longs:
+    descriptions:
     - 'There is food here.'
-- OBJ_20:
+- BOTTLE:
+    words: ['bottl', 'jar']
     inventory: 'Small bottle'
     locations: LOC_BUILDING
-    longs:
+    descriptions:
     - [WATER_BOTTLE, 'There is a bottle of water here.']
     - [EMPTY_BOTTLE, 'There is an empty bottle here.']
     - [OIL_BOTTLE, 'There is a bottle of oil here.']
-- OBJ_21:
+- WATER:
+    words: ['water', 'h2o']
     inventory: 'Water in the bottle'
     locations: LOC_NOWHERE
-    longs: !!null
-- OBJ_22:
+    descriptions: !!null
+- OIL:
+    words: ['oil']
     inventory: 'Oil in the bottle'
     locations: LOC_NOWHERE
-    longs: !!null
-- OBJ_23:
+    descriptions: !!null
+- MIRROR:
+    words: ['mirro']
     inventory: '*mirror'
     locations: LOC_MIRRORCANYON
     immovable: true
-    longs: !!null
-- OBJ_24:
+    descriptions: !!null
+- PLANT:
+    words: ['plant', 'beans']
     inventory: '*plant'
     locations: LOC_WESTPIT
     immovable: true
-    longs:
+    descriptions:
     - 'There is a tiny little plant in the pit, murmuring "water, water, ..."'
     - 'There is a 12-foot-tall beanstalk stretching up out of the pit,\nbellowing "WATER!! WATER!!"'
     - 'There is a gigantic beanstalk stretching all the way up to the hole.'
@@ -3000,48 +3016,55 @@ object_descriptions: !!omap
     - 'The plant continues to ask plaintively for water.'
     - 'The plant continues to demand water.'
     - 'The plant now maintains a contented silence.'
-- OBJ_25:
+- PLANT2:
+    words: ['plant']
     inventory: '*phony plant' # seen in Twopit Room only when tall enough
     locations: [LOC_WESTEND, LOC_EASTEND]
     immovable: true
-    longs:
+    descriptions:
     - ''
     - 'The top of a 12-foot-tall beanstalk is poking out of the west pit.'
     - 'There is a huge beanstalk growing out of the west pit up to the hole.'
 - OBJ_26:
+    words: ['stala']
     inventory: '*stalactite'
     locations: LOC_TOPSTALACTITE
     immovable: true
-    longs:
+    descriptions:
     - ''
 - OBJ_27:
+    words: ['shado', 'figur', 'windo']
     inventory: '*shadowy figure and/or window'
     locations: [LOC_WINDOW1, LOC_WINDOW2]
     immovable: true
-    longs:
+    descriptions:
     - 'The shadowy figure seems to be trying to attract your attention.'
-- OBJ_28:
+- AXE:
+    words: ['axe']
     inventory: 'Dwarf''s axe'
     locations: LOC_NOWHERE
-    longs:
+    descriptions:
     - 'There is a little axe here.'
     - 'There is a little axe lying beside the bear.'
 - OBJ_29:
+    words: ['drawi']
     inventory: '*cave drawings'
     locations: LOC_ORIENTAL
     immovable: true
-    longs: !!null
+    descriptions: !!null
 - OBJ_30:
+    words: ['pirat', 'genie', 'djinn']
     inventory: '*pirate/genie'
     locations: LOC_NOWHERE
     immovable: true
-    longs: !!null # never present
-- OBJ_31:
+    descriptions: !!null # never present
+- DRAGON:
+    words: ['drago']
     inventory: '*dragon'
     locations: [LOC_SECRET4, LOC_SECRET6]
     immovable: true
-    longs:
-    - 'A huge green fierce dragon bars the way!'
+    descriptions:
+    - [DRAGON_BLOCKS, 'A huge green fierce dragon bars the way!']
     - 'The blood-specked body of a huge green dead dragon lies to one side.'
     - 'The body of a huge green dead dragon is lying off to one side.'
     - 'Congratulations!  You have just vanquished a dragon with your bare\nhands!  (Unbelievable, isn''t it?)'
@@ -3049,274 +3072,315 @@ object_descriptions: !!omap
     - 'The dragon''s ominous hissing does not bode well for you.'
     - 'The dragon is, not surprisingly, silent.'
     - 'The dragon is, not surprisingly, silent.'
-- OBJ_32:
+- CHASM:
+    words: ['chasm']
     inventory: '*chasm'
     locations: [LOC_SWCHASM, LOC_NECHASM]
     immovable: true
-    longs:
-    - 'A rickety wooden bridge extends across the chasm, vanishing into the\nmist.  A notice posted on the bridge reads, "Stop! Pay troll!"'
-    - 'The wreckage of a bridge (and a dead bear) can be seen at the bottom\nof the chasm.'
-- OBJ_33:
+    descriptions:
+    - [TROLL_BRIDGE, 'A rickety wooden bridge extends across the chasm, vanishing into the\nmist.  A notice posted on the bridge reads, "Stop! Pay troll!"']
+    - [BRIDGE_WRECKED, 'The wreckage of a bridge (and a dead bear) can be seen at the bottom\nof the chasm.']
+- TROLL:
+    words: ['troll']
     inventory: '*troll'
     locations: [LOC_SWCHASM, LOC_NECHASM]
     immovable: true
-    longs:
+    descriptions:
     - 'A burly troll stands by the bridge and insists you throw him a\ntreasure before you may cross.'
     - 'The troll steps out from beneath the bridge and blocks your way.'
     - '' # chased away
     sounds:
     - 'The troll sounds quite adamant in his demand for a treasure.'
-- OBJ_34:
+- TROLL2:
+    words: ['troll']
     inventory: '*phony troll'
     locations: [LOC_NOWHERE, LOC_NOWHERE]
     immovable: true
-    longs:
+    descriptions:
     - 'The troll is nowhere to be seen.'
-- OBJ_35:
+- BEAR:
+    words: ['bear']
     inventory: !!null # bear uses rtext 141
     locations: LOC_BARRENROOM
     immovable: true
-    longs:
-    - 'There is a ferocious cave bear eying you from the far end of the room!'
-    - 'There is a gentle cave bear sitting placidly in one corner.'
-    - 'There is a contented-looking bear wandering about nearby.'
-    - '' # dead
-- OBJ_36:
+    descriptions:
+    - [UNTAMED_BEAR, 'There is a ferocious cave bear eying you from the far end of the room!']
+    - [SITTING_BEAR, 'There is a gentle cave bear sitting placidly in one corner.']
+    - [CONTENTED_BEAR, 'There is a contented-looking bear wandering about nearby.']
+    - [BEAR_DEAD, '']
+- MESSAG:
+    words: ['messa']
     inventory: '*message in second maze'
     locations: LOC_NOWHERE
     immovable: true
-    longs:
+    descriptions:
     - 'There is a message scrawled in the dust in a flowery script, reading:\n"This is not the maze where the pirate leaves his treasure chest."'
     texts:
     - '"This is not the maze where the pirate leaves his treasure chest."'
-- OBJ_37:
+- VOLCANO:
+    words: ['volca', 'geyse']
     inventory: '*volcano and/or geyser'
     locations: LOC_BREATHTAKING
     immovable: true
-    longs: !!null
-- OBJ_38:
+    descriptions: !!null
+- VEND:
+    words: ['machi', 'vendi']
     inventory: '*vending machine'
     locations: LOC_DEADEND13
     immovable: true
-    longs:
+    descriptions:
     - [VEND_BLOCKS, 'There is a massive and somewhat battered vending machine here.  The\ninstructions on it read: "Drop coins here to receive fresh batteries."']
     - [VEND_UNBLOCKS, 'There is a massive vending machine here, swung back to reveal a\nsouthward passage.']
+    changes:
+    - 'The vending machine swings back to block the passage.'
+    - 'As you strike the vending machine, it pivots backward along with a\nsection of wall, revealing a dark passage leading south.'
     texts:
     - '"Drop coins here to receive fresh batteries."'
     - '"Drop coins here to receive fresh batteries."'
-- OBJ_39:
+- BATTERY:
+    words: ['batte']
     inventory: 'Batteries'
     locations: LOC_NOWHERE
-    longs:
+    descriptions:
     - [FRESH_BATTERIES, 'There are fresh batteries here.']
     - [DEAD_BATTERIES, 'Some worn-out batteries have been discarded nearby.']
 - OBJ_40:
+    words: ['carpe', 'moss']
     inventory: '*carpet and/or moss and/or curtains'
     locations: LOC_SOFTROOM
     immovable: true
-    longs: !!null
-- OBJ_41:
+    descriptions: !!null
+- OGRE:
+    words: ['ogre']
     inventory: '*ogre'
     locations: LOC_LARGE
     immovable: true
-    longs:
+    descriptions:
     - 'A formidable ogre bars the northern exit.'
     sounds:
     - 'The ogre is apparently the strong, silent type.'
-- OBJ_42:
+- URN:
+    words: ['urn']
     inventory: '*urn'
     locations: LOC_CLIFF
     immovable: true
-    longs:
+    descriptions:
     - 'A small urn is embedded in the rock.'
     - 'A small urn full of oil is embedded in the rock.'
     - 'A small oil flame extrudes from an urn embedded in the rock.'
-- OBJ_43:
+- CAVITY:
+    words: ['cavit']
     inventory: '*cavity'
     locations: LOC_NOWHERE
     immovable: true
-    longs:
-    - '' # something in it
-    - 'There is a small urn-shaped cavity in the rock.'
-- OBJ_44:
+    descriptions:
+    - [CAVITY_FULL, ''] # something in it
+    - [CAVITY_EMPTY, 'There is a small urn-shaped cavity in the rock.']
+- BLOOD:
+    words: ['blood']
     inventory: '*blood'
     locations: LOC_NOWHERE
     immovable: true
-    longs:
+    descriptions:
     - '' # described with dragon
-- OBJ_45:
+- RESER:
+    words: ['reser']
     inventory: '*reservoir'
     locations: [LOC_RESERVOIR, LOC_RESNORTH]
     immovable: true
-    longs:
+    descriptions:
     - ''
-    - 'The waters have parted to form a narrow path across the reservoir.'
+    - [WATERS_PARTED, 'The waters have parted to form a narrow path across the reservoir.']
     - 'The waters crash together again.'
 - OBJ_46:
+    words: ['appen', 'lepor']
     inventory: 'Leporine appendage'
     locations: LOC_FOREST22
-    longs:
+    descriptions:
     - 'Your keen eye spots a severed leporine appendage lying on the ground.'
 - OBJ_47:
+    words: ['mud']
     inventory: '*mud'
     locations: LOC_DEBRIS
     immovable: true
-    longs:
+    descriptions:
     - ''
     texts:
     - '"MAGIC WORD XYZZY"'
 - OBJ_48:
+    words: ['note']
     inventory: '*note'
     locations: LOC_NUGGET
     immovable: true
-    longs:
+    descriptions:
     - ''
     texts:
     - '"You won''t get it up the steps"'
-- OBJ_49:
+- SIGN:
+    words: ['sign']
     inventory: '*sign'
     locations: LOC_ANTEROOM
     immovable: true
-    longs:
+    descriptions:
     - [INGAME_SIGN, '']
     - [ENDGAME_SIGN, '']
     texts:
     - 'Cave under construction beyond this point.\n           Proceed at own risk.\n       [Witt Construction Company]'
     - '"Treasure Vault.  Keys in main office."'
-- OBJ_50:
+- NUGGET:
+    words: ['gold', 'nugge']
     inventory: 'Large gold nugget'
     locations: LOC_NUGGET
     treasure: true
-    longs:
+    descriptions:
     - 'There is a large sparkling nugget of gold here!'
 - OBJ_51:
+    words: ['diamo']
     inventory: 'Several diamonds'
     locations: LOC_WESTBANK
     treasure: true
-    longs:
+    descriptions:
     - 'There are diamonds here!'
 - OBJ_52:
+    words: ['silve', 'bars']
     inventory: 'Bars of silver'
     locations: LOC_FLOORHOLE
     treasure: true
-    longs:
+    descriptions:
     - 'There are bars of silver here!'
 - OBJ_53:
+    words: ['jewel']
     inventory: 'Precious jewelry'
     locations: LOC_SOUTHSIDE
     treasure: true
-    longs:
+    descriptions:
     - 'There is precious jewelry here!'
-- OBJ_54:
+- COINS:
+    words: ['coins']
     inventory: 'Rare coins'
     locations: LOC_WESTSIDE
     treasure: true
-    longs:
+    descriptions:
     - 'There are many coins here!'
-- OBJ_55:
+- CHEST:
+    words: ['chest', 'box', 'treas']
     inventory: 'Treasure chest'
     locations: LOC_NOWHERE
     treasure: true
-    longs:
+    descriptions:
     - 'The pirate''s treasure chest is here!'
-- OBJ_56:
+- EGGS:
+    words: ['eggs', 'egg', 'nest']
     inventory: 'Golden eggs'
     locations: LOC_GIANTROOM
     treasure: true
-    longs:
+    descriptions:
     - 'There is a large nest here, full of golden eggs!'
     - 'The nest of golden eggs has vanished!'
     - 'Done!'
-- OBJ_57:
+- TRIDENT:
+    words: ['tride']
     inventory: 'Jeweled trident'
     locations: LOC_WATERFALL
     treasure: true
-    longs:
+    descriptions:
     - 'There is a jewel-encrusted trident here!'
-- OBJ_58:
+- VASE:
+    words: ['vase', 'ming', 'shard', 'potte']
     inventory: 'Ming vase'
     locations: LOC_ORIENTAL
     treasure: true
-    longs:
+    descriptions:
     - [VASE_WHOLE, 'There is a delicate, precious, ming vase here!']
     - [VASE_RESTING, 'The vase is now resting, delicately, on a velvet pillow.']
     - [VASE_BROKEN, 'The floor is littered with worthless shards of pottery.']
     - [VASE_DROPS, 'The ming vase drops with a delicate crash.']
-- OBJ_59:
+- EMERALD:
+    words: ['emera']
     inventory: 'Egg-sized emerald'
     locations: LOC_PLOVER
     treasure: true
-    longs:
+    descriptions:
     - 'There is an emerald here the size of a plover''s egg!'
     - 'There is an emerald resting in a small cavity in the rock!'
-- OBJ_60:
+- PYRAMID:
+    words: ['plati', 'pyram']
     inventory: 'Platinum pyramid'
     locations: LOC_DARKROOM
     treasure: true
-    longs:
+    descriptions:
     - 'There is a platinum pyramid here, 8 inches on a side!'
-- OBJ_61:
+- PEARL:
+    words: ['pearl']
     inventory: 'Glistening pearl'
     locations: LOC_NOWHERE
     treasure: true
-    longs:
+    descriptions:
     - 'Off to one side lies a glistening pearl!'
-- OBJ_62:
+- RUG:
+    words: ['rug', 'persi']
     inventory: 'Persian rug'
     locations: [LOC_SECRET4, LOC_SECRET6]
     immovable: true
     treasure: true
-    longs:
+    descriptions:
     - 'There is a persian rug spread out on the floor!'
     - 'The dragon is sprawled out on a persian rug!!'
     - 'There is a persian rug here, hovering in mid-air!'
 - OBJ_63:
+    words: ['spice']
     inventory: 'Rare spices'
     locations: LOC_BOULDERS2
     treasure: true
-    longs:
+    descriptions:
     - 'There are rare spices here!'
-- OBJ_64:
+- CHAIN:
+    words: ['chain']
     inventory: 'Golden chain'
     locations: LOC_BARRENROOM
     immovable: true
     treasure: true
-    longs:
+    descriptions:
     - 'There is a golden chain lying in a heap on the floor!'
     - 'The bear is locked to the wall with a golden chain!'
     - 'There is a golden chain locked to the wall!'
-- OBJ_65:
+- RUBY:
+    words: ['ruby']
     inventory: 'Giant ruby'
     locations: LOC_STOREROOM
     treasure: true
-    longs:
+    descriptions:
     - 'There is an enormous ruby here!'
     - 'There is a ruby resting in a small cavity in the rock!'
-- OBJ_66:
+- JADE:
+    words: ['jade', 'neckl']
     inventory: 'Jade necklace'
     locations: LOC_NOWHERE
     treasure: true
-    longs:
+    descriptions:
     - 'A precious jade necklace has been dropped here!'
-- OBJ_67:
+- AMBER:
+    words: ['amber', 'gemst']
     inventory: 'Amber gemstone'
     locations: LOC_NOWHERE
     treasure: true
-    longs:
+    descriptions:
     - 'There is a rare amber gemstone here!'
     - 'There is an amber gemstone resting in a small cavity in the rock!'
-- OBJ_68:
+- SAPPH:
+    words: ['sapph']
     inventory: 'Star sapphire'
     locations: LOC_LEDGE
     treasure: true
-    longs:
+    descriptions:
     - 'A brilliant blue star sapphire is here!'
     - 'There is a star sapphire resting in a small cavity in the rock!'
 - OBJ_69:
+    words: ['ebony', 'statu']
     inventory: 'Ebony statuette'
     locations: LOC_REACHDEAD
     treasure: true
-    longs:
+    descriptions:
     - 'There is a richly-carved ebony statuette here!'
 
 obituaries: