Implement and document %V escape so version only needs to be set once.
[open-adventure.git] / adventure.yaml
index 7cee07ea47cccb684741ada37f09a9ec9a950b27..26c218573b9d8e14465cd1b929e2e496a726ec61 100644 (file)
@@ -6,14 +6,17 @@
 #
 # 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.
 #
-# actspk: Default message for action verbs.  The numbers correspond to
-#    values in the vocabulary list.
+# 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
 #                    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
 #      %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.
-# 1 is not allocated because it's used as a sentinel value in motion-verb
-# lists.
-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: "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']
 
-actspk: {
-    1: ALREADY_CARRYING,
-    2: ARENT_CARRYING,
-    3: NO_MESSAGE,
-    4: NOT_LOCKABLE,
-    5: NO_MESSAGE,
-    6: NOT_LOCKABLE,
-    7: DONT_UNDERSTAND,
-    8: DONT_UNDERSTAND,
-    9: NOTHING_HAPPENS,
-    10: AM_GAME,
-    11: WHERE_QUERY,
-    12: RIDICULOUS_ATTEMPT,
-    13: ARENT_CARRYING,
-    14: RIDICULOUS_ATTEMPT,
-    15: STREAM_WATER,
-    16: RUB_NOGO,
-    17: ARENT_CARRYING,
-    18: HUH_MAN,
-    19: NEARBY,
-    20: NEARBY,
-    21: NO_EDIBLES,
-    22: CANT_FILL,
-    23: REQUIRES_DYNAMITE,
-    24: HUH_MAN,
-    25: NOT_KNOWHOW,
-    26: ON_WHAT,
-    27: DONT_UNDERSTAND,
-    28: BEYOND_POWER,
-    29: RIDICULOUS_ATTEMPT,
-    30: HUH_MAN,
-    31: HUH_MAN,
-    32: AM_GAME,
-    33: DONT_UNDERSTAND,
-    34: NOTHING_HAPPENS,
-    35: HUH_MAN,
-}
+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']
 
 hints:
   - hint: &grate
@@ -465,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:
@@ -477,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:
@@ -490,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:
@@ -502,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:
@@ -515,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:
@@ -528,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:
@@ -539,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:
@@ -553,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:
@@ -567,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:
@@ -579,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:
@@ -589,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:
@@ -602,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:
@@ -615,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:
@@ -627,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:
@@ -643,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:
@@ -656,7 +738,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_PITTOP]},
+      {verbs: [], action: [goto, LOC_PITTOP]},
     ]
 - LOC_EASTBANK:
     description:
@@ -664,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:
@@ -676,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:
@@ -685,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:
@@ -700,7 +782,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_NOWHERE]},
+      {verbs: [], action: [goto, LOC_NOWHERE]},
     ]
 - LOC_NOMAKE:
     description:
@@ -708,7 +790,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_NOWHERE]},
+      {verbs: [], action: [goto, LOC_NOWHERE]},
     ]
 - LOC_DOME:
     description:
@@ -716,7 +798,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_MISTHALL]},
+      {verbs: [], action: [goto, LOC_MISTHALL]},
     ]
 - LOC_WESTEND:
     description:
@@ -724,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:
@@ -735,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:
@@ -743,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:
@@ -753,7 +835,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_NARROW]},
+      {verbs: [], action: [goto, LOC_NARROW]},
     ]
 - LOC_WESTBANK:
     description:
@@ -761,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:
@@ -774,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:
@@ -784,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:
@@ -792,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:
@@ -801,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:
@@ -810,7 +892,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_KINGHALL]},
+      {verbs: [], action: [goto, LOC_KINGHALL]},
     ]
 - LOC_Y2:
     description:
@@ -818,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:
@@ -831,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:
@@ -840,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:
@@ -849,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:
@@ -860,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:
@@ -870,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:
@@ -879,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:
@@ -889,7 +971,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_MISTWEST]},
+      {verbs: [], action: [goto, LOC_MISTWEST]},
     ]
 - LOC_MISTWEST:
     description:
@@ -897,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:
@@ -909,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:
@@ -922,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:
@@ -933,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:
@@ -945,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:
@@ -958,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:
@@ -967,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:
@@ -976,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:
@@ -985,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:
@@ -995,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:
@@ -1007,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:
@@ -1019,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:
@@ -1033,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:
@@ -1044,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:
@@ -1053,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:
@@ -1065,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:
@@ -1073,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:
@@ -1085,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:
@@ -1093,7 +1175,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_WESTBANK]},
+      {verbs: [], action: [goto, LOC_WESTBANK]},
     ]
 - LOC_LONGEAST:
     description:
@@ -1101,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:
@@ -1111,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:
@@ -1121,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:
@@ -1132,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:
@@ -1142,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:
@@ -1153,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:
@@ -1172,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:
@@ -1186,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:
@@ -1196,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:
@@ -1206,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:
@@ -1218,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:
@@ -1228,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:
@@ -1238,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:
@@ -1249,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:
@@ -1257,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:
@@ -1268,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:
@@ -1277,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:
@@ -1285,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:
@@ -1295,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:
@@ -1303,7 +1385,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_BUILDING]},
+      {verbs: [], action: [goto, LOC_BUILDING]},
     ]
 - LOC_ALIKE11:
     description:
@@ -1312,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:
@@ -1324,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:
@@ -1333,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:
@@ -1341,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:
@@ -1351,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:
@@ -1361,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:
@@ -1370,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:
@@ -1379,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:
@@ -1387,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:
@@ -1397,7 +1479,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_WESTPIT]},
+      {verbs: [], action: [goto, LOC_WESTPIT]},
     ]
 - LOC_PLANTTOP:
     description:
@@ -1405,7 +1487,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_WESTEND]},
+      {verbs: [], action: [goto, LOC_WESTEND]},
     ]
 - LOC_INCLINE:
     description:
@@ -1413,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:
@@ -1422,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:
@@ -1432,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:
@@ -1441,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:
@@ -1452,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:
@@ -1462,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:
@@ -1470,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:
@@ -1481,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:
@@ -1491,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:
@@ -1503,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:
@@ -1515,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:
@@ -1523,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:
@@ -1531,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:
@@ -1543,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:
@@ -1552,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:
@@ -1561,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:
@@ -1571,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:
@@ -1589,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:
@@ -1601,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:
@@ -1610,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:
@@ -1619,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:
@@ -1630,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:
@@ -1648,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:
@@ -1658,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:
@@ -1667,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:
@@ -1676,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:
@@ -1685,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:
@@ -1698,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:
@@ -1707,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:
@@ -1716,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:
@@ -1725,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:
@@ -1734,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:
@@ -1749,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:
@@ -1761,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:
@@ -1774,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:
@@ -1787,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:
@@ -1799,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:
@@ -1809,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:
@@ -1819,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:
@@ -1830,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:
@@ -1840,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:
@@ -1857,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:
@@ -1874,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:
@@ -1891,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:
@@ -1908,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:
@@ -1925,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:
@@ -1942,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:
@@ -1959,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:
@@ -1976,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:
@@ -1993,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:
@@ -2003,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:
@@ -2012,7 +2094,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_DEADEND13]},
+      {verbs: [], action: [goto, LOC_DEADEND13]},
     ]
 - LOC_LARGE:
     description:
@@ -2021,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:
@@ -2031,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:
@@ -2040,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:
@@ -2052,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:
@@ -2064,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:
@@ -2075,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:
@@ -2085,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:
@@ -2096,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:
@@ -2108,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:
@@ -2120,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:
@@ -2132,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:
@@ -2144,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:
@@ -2156,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:
@@ -2168,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:
@@ -2180,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:
@@ -2192,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:
@@ -2204,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:
@@ -2216,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:
@@ -2227,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:
@@ -2238,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:
@@ -2250,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:
@@ -2262,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:
@@ -2274,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:
@@ -2286,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:
@@ -2297,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:
@@ -2307,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:
@@ -2317,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:
@@ -2327,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:
@@ -2336,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:
@@ -2345,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:
@@ -2354,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:
@@ -2364,7 +2446,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_NOWHERE]},
+      {verbs: [], action: [goto, LOC_NOWHERE]},
     ]
 - LOC_CLIFFTOP:
     description:
@@ -2372,7 +2454,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_CLIFFLEDGE]},
+      {verbs: [], action: [goto, LOC_CLIFFLEDGE]},
     ]
 - LOC_CLIFFLEDGE:
     description:
@@ -2380,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:
@@ -2389,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:
@@ -2397,7 +2479,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_NOWHERE]},
+      {verbs: [], action: [goto, LOC_NOWHERE]},
     ]
 - LOC_FOOF1:
     description:
@@ -2405,7 +2487,7 @@ locations: !!omap
       short: !!null
     conditions: {}
     travel: [
-      {verbs: [], action: ["goto", LOC_DEBRIS]},
+      {verbs: [], action: [goto, LOC_DEBRIS]},
     ]
 - LOC_FOOF2:
     description:
@@ -2413,7 +2495,7 @@ locations: !!omap
       short: !!null
     conditions: {ABOVE: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_BUILDING]},
+      {verbs: [], action: [goto, LOC_BUILDING]},
     ]
 - LOC_FOOF3:
     description:
@@ -2421,7 +2503,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_Y2]},
+      {verbs: [], action: [goto, LOC_Y2]},
     ]
 - LOC_FOOF4:
     description:
@@ -2429,7 +2511,7 @@ locations: !!omap
       short: !!null
     conditions: {ABOVE: true}
     travel: [
-      {verbs: [], action: ["goto", LOC_BUILDING]},
+      {verbs: [], action: [goto, LOC_BUILDING]},
     ]
 - LOC_FOOF5:
     description:
@@ -2437,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.'
@@ -2464,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.'
-- ARB_18: !!null
-- ARB_19: !!null
-- ARB_20: !!null
-- ARB_21: !!null
 - 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!'
@@ -2481,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?'
@@ -2508,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?'
-- ARB_62: !!null
-- ARB_63: !!null
 - 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.'
@@ -2527,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!'
@@ -2612,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.'
@@ -2622,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?'
-- ARB_176: !!null
-- ARB_177: !!null
-- ARB_178: !!null
-- ARB_179: !!null
-- ARB_180: !!null
-- ARB_181: !!null
 - 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.'
@@ -2637,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.'
-- ARB_191: !!null
 - 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."'
-- ARB_194: !!null
 - 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.'
@@ -2653,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.'
@@ -2690,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.'
-- ARB_244: !!null
-- ARB_245: !!null
 - UPSTREAM_DOWNSTREAM: 'Upstream or downstream?'
 - WIZARDS_NODISTURB: 'Wizards are not to be disturbed by such as you.'
 - FOREST_QUERY: !!null
-- ARB_249: !!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!'
@@ -2720,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.'
-- ARB_274: !!null
-- ARB_275: !!null
 - 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.'
-- ARB_279: !!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
@@ -2770,59 +2822,65 @@ turn_thresholds:
 objects: !!omap
 - OBJ_0:
     inventory: !!null
-    longs: !!null
+    descriptions: !!null
 - KEYS:
     words: ['keys', 'key']
     inventory: 'Set of keys'
     locations: LOC_BUILDING
-    longs:
+    descriptions:
     - 'There are some keys on the ground here.'
 - 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.']
+    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.']
+    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.'
 - 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.'
 - 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.'
 - 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.'
 - 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.']
@@ -2838,23 +2896,23 @@ objects: !!omap
     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.'
 - PILLOW:
     words: ['pillo', 'velve']
     inventory: 'Velvet pillow'
     locations: LOC_SOFTROOM
-    longs:
+    descriptions:
     - 'A small velvet pillow lies on the floor.'
 - 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.'
 - FISSURE:
@@ -2862,16 +2920,16 @@ objects: !!omap
     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!"'
@@ -2879,7 +2937,7 @@ objects: !!omap
     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.'
@@ -2887,17 +2945,17 @@ objects: !!omap
     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?'
 - MAGAZINE:
-    words: ['issue', 'spelu', '"spel']
+    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."'
@@ -2906,23 +2964,23 @@ objects: !!omap
     inventory: !!null
     locations: LOC_NOWHERE
     immovable: true
-    longs: !!null
+    descriptions: !!null
 - KNIFE:
     words: ['knife', 'knive']
     inventory: !!null
     locations: LOC_NOWHERE
-    longs: !!null
+    descriptions: !!null
 - FOOD:
     words: ['food', 'ratio']
     inventory: 'Tasty food'
     locations: LOC_BUILDING
-    longs:
+    descriptions:
     - 'There is food here.'
 - 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.']
@@ -2930,24 +2988,24 @@ objects: !!omap
     words: ['water', 'h2o']
     inventory: 'Water in the bottle'
     locations: LOC_NOWHERE
-    longs: !!null
+    descriptions: !!null
 - OIL:
     words: ['oil']
     inventory: 'Oil in the bottle'
     locations: LOC_NOWHERE
-    longs: !!null
+    descriptions: !!null
 - MIRROR:
     words: ['mirro']
     inventory: '*mirror'
     locations: LOC_MIRRORCANYON
     immovable: true
-    longs: !!null
+    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.'
@@ -2963,7 +3021,7 @@ objects: !!omap
     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.'
@@ -2972,20 +3030,20 @@ objects: !!omap
     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.'
 - 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:
@@ -2993,20 +3051,20 @@ objects: !!omap
     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
+    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?)'
@@ -3019,15 +3077,15 @@ objects: !!omap
     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.'
+    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
@@ -3038,24 +3096,24 @@ objects: !!omap
     inventory: '*phony troll'
     locations: [LOC_NOWHERE, LOC_NOWHERE]
     immovable: true
-    longs:
+    descriptions:
     - 'The troll is nowhere to be seen.'
 - 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
+    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."'
@@ -3064,15 +3122,18 @@ objects: !!omap
     inventory: '*volcano and/or geyser'
     locations: LOC_BREATHTAKING
     immovable: true
-    longs: !!null
+    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."'
@@ -3080,7 +3141,7 @@ objects: !!omap
     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:
@@ -3088,13 +3149,13 @@ objects: !!omap
     inventory: '*carpet and/or moss and/or curtains'
     locations: LOC_SOFTROOM
     immovable: true
-    longs: !!null
+    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.'
@@ -3103,7 +3164,7 @@ objects: !!omap
     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.'
@@ -3112,37 +3173,37 @@ objects: !!omap
     inventory: '*cavity'
     locations: LOC_NOWHERE
     immovable: true
-    longs:
-    - '' # something in it
-    - 'There is a small urn-shaped cavity in the rock.'
+    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
 - 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"'
@@ -3151,7 +3212,7 @@ objects: !!omap
     inventory: '*note'
     locations: LOC_NUGGET
     immovable: true
-    longs:
+    descriptions:
     - ''
     texts:
     - '"You won''t get it up the steps"'
@@ -3160,7 +3221,7 @@ objects: !!omap
     inventory: '*sign'
     locations: LOC_ANTEROOM
     immovable: true
-    longs:
+    descriptions:
     - [INGAME_SIGN, '']
     - [ENDGAME_SIGN, '']
     texts:
@@ -3171,49 +3232,49 @@ objects: !!omap
     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!'
 - COINS:
     words: ['coins']
     inventory: 'Rare coins'
     locations: LOC_WESTSIDE
     treasure: true
-    longs:
+    descriptions:
     - 'There are many coins here!'
 - CHEST:
     words: ['chest', 'box', 'treas']
     inventory: 'Treasure chest'
     locations: LOC_NOWHERE
     treasure: true
-    longs:
+    descriptions:
     - 'The pirate''s treasure chest is here!'
 - 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!'
@@ -3222,14 +3283,14 @@ objects: !!omap
     inventory: 'Jeweled trident'
     locations: LOC_WATERFALL
     treasure: true
-    longs:
+    descriptions:
     - 'There is a jewel-encrusted trident here!'
 - 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.']
@@ -3239,7 +3300,7 @@ objects: !!omap
     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!'
 - PYRAMID:
@@ -3247,14 +3308,14 @@ objects: !!omap
     inventory: 'Platinum pyramid'
     locations: LOC_DARKROOM
     treasure: true
-    longs:
+    descriptions:
     - 'There is a platinum pyramid here, 8 inches on a side!'
 - PEARL:
     words: ['pearl']
     inventory: 'Glistening pearl'
     locations: LOC_NOWHERE
     treasure: true
-    longs:
+    descriptions:
     - 'Off to one side lies a glistening pearl!'
 - RUG:
     words: ['rug', 'persi']
@@ -3262,7 +3323,7 @@ objects: !!omap
     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!'
@@ -3271,7 +3332,7 @@ objects: !!omap
     inventory: 'Rare spices'
     locations: LOC_BOULDERS2
     treasure: true
-    longs:
+    descriptions:
     - 'There are rare spices here!'
 - CHAIN:
     words: ['chain']
@@ -3279,7 +3340,7 @@ objects: !!omap
     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!'
@@ -3288,7 +3349,7 @@ objects: !!omap
     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!'
 - JADE:
@@ -3296,14 +3357,14 @@ objects: !!omap
     inventory: 'Jade necklace'
     locations: LOC_NOWHERE
     treasure: true
-    longs:
+    descriptions:
     - 'A precious jade necklace has been dropped here!'
 - 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!'
 - SAPPH:
@@ -3311,7 +3372,7 @@ objects: !!omap
     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:
@@ -3319,7 +3380,7 @@ objects: !!omap
     inventory: 'Ebony statuette'
     locations: LOC_REACHDEAD
     treasure: true
-    longs:
+    descriptions:
     - 'There is a richly-carved ebony statuette here!'
 
 obituaries: