YAML coverage - commented out unused arbitrary messages
[open-adventure.git] / adventure.yaml
index 60a148de79b1c5458ec0e686310c367896c68b03..742a4c394124f784180178b122505c96142d6a9a 100644 (file)
 #
 # objects: Objects have attributes as follows...
 #      inventory:    A description for use in the inventory command.
+#      states:       A list of state labels for states from 0 up. Each
+#                    becomes a #define, and is also a state label that
+#                    can be used in travel-rule 'not' clauses.
 #      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
+#                    Must correspond 1:1 with state labels if the latter exist.
+#      changes:      State-change messages to be emitted whenever the object
 #                    *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
+#                    message in this array. Must correspond 1:1 with state
+#                    labels if the latter exist.
+#      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:    An object may also be flagged
 #                    immovable, meaning it cannot be carried.
-#       locations:   An object may have one or two start locations (the gate
+#      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).
 #
 # Message strings may include certain special character sequences to
 # denote that the program must provide parameters to insert into a
 # message when the message is printed.  These sequences are:
-#      %S = The letter 'S' or nothing (if a given value is exactly 1)
-#      %W = A word (up to 10 characters)
-#      %L = A word mapped to lower-case letters
-#      %U = A word mapped to upper-case letters
-#      %C = A word mapped to lower-case, first letter capitalised
-#      %T = Several words of text, ending with a word of -1
-#      %1 = A 1-digit number
-#      %2 = A 2-digit number
-#      ...
-#      %9 = A 9-digit number
-#      %B = Variable number of blanks
-#      %! = The entire message should be suppressed
+#       %d = an integer
+#       %s = an ASCII string
+#      %S = The letter 's' or nothing (if a previous %d value is exactly 1)
 #      %V = substitute program version string
 
 motions: !!omap
@@ -213,9 +204,9 @@ motions: !!omap
     words: ['east', 'e']
 - WEST:
     words: ['west', 'w']
-- MOT_45:
+- NORTH:
     words: ['north', 'n']
-- MOT_46:
+- SOUTH:
     words: ['south', 's']
 - NE:
     words: ['ne']
@@ -279,121 +270,6 @@ motions: !!omap
 - FORWARD6:
     words: ['main', 'offic']
 
-actions: !!omap
-- ACT_0:
-    message: !!null
-    words: !!null
-- CARRY:
-    message: ALREADY_CARRYING
-    words: ['g', 'carry', 'take', 'keep', 'catch',
-            'steal', 'captu', 'get', 'tote', 'snarf']
-    oldstyle: false
-- 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']
-    oldstyle: false
-- 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']
-    oldstyle: false
-- 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
-
 hints:
   - hint: &grate
       name: CAVE
@@ -480,8 +356,9 @@ hints:
       penalty: 4
       question: 'You''re missing only one other treasure.  Do you need help finding it?'
       hint: |-
-        Once you''ve found all the other treasures, it is no longer possible to
+        Once you've found all the other treasures, it is no longer possible to
         locate the one you''re now missing.'
+
 locations: !!omap
 - LOC_NOWHERE:
     description:
@@ -500,12 +377,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, DOWN], action: [goto, LOC_VALLEY]},
+      {verbs: [FORES, NORTH], action: [goto, LOC_FOREST1]},
+      {verbs: [DEPRE], action: [goto, LOC_GRATE]},
     ]
 - LOC_HILL:
     description:
@@ -515,11 +391,11 @@ 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: ['D'], action: ["speak", WHICH_WAY]},
+      {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: [DOWN], action: [speak, WHICH_WAY]},
     ]
 - LOC_BUILDING:
     description:
@@ -528,10 +404,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:
@@ -542,12 +418,12 @@ 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: ['STREA'], action: ["speak", UPSTREAM_DOWNSTREAM]},
+      {verbs: [UPSTR, BUILD, NORTH], action: [goto, LOC_START]},
+      {verbs: [EAST, FORES], action: [goto, LOC_FOREST6]},
+      {verbs: [WEST], action: [goto, LOC_FOREST12]},
+      {verbs: [DOWNS, SOUTH, DOWN], action: [goto, LOC_SLIT]},
+      {verbs: [DEPRE], action: [goto, LOC_GRATE]},
+      {verbs: [STREA], action: [speak, UPSTREAM_DOWNSTREAM]},
     ]
 - LOC_ROADEND:
     description:
@@ -555,11 +431,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:
@@ -570,9 +446,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:
@@ -583,13 +459,12 @@ 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: ['SLIT', 'STREA', 'D', 'INWAR', 'ENTER'],
-                                                action: ["speak", DONT_FIT]},
+      {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, DOWN, INWAR, ENTER], action: [speak, DONT_FIT]},
     ]
 - LOC_GRATE:
     description:
@@ -601,15 +476,15 @@ 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'],
+      {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, DOWN],
                              cond: [not, GRATE, GRATE_CLOSED],
                              action: [goto, LOC_BELOWGRATE]},
-      {verbs: ['ENTER'], action: ["speak", GRATE_NOWAY]},
+      {verbs: [ENTER], action: [speak, GRATE_NOWAY]},
     ]
 - LOC_BELOWGRATE:
     description:
@@ -619,11 +494,12 @@ locations: !!omap
       short: 'You''re below the grate.'
     conditions: {LIT: true}
     travel: [
-      {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: [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]},
     ]
 - LOC_COBBLE:
     description:
@@ -633,9 +509,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, EAST], action: [goto, LOC_BELOWGRATE]},
+      {verbs: [INWAR, DARK, WEST, DEBRI], action: [goto, LOC_DEBRIS]},
+      {verbs: [PIT], action: [goto, LOC_PITTOP]},
     ]
 - LOC_DEBRIS:
     description:
@@ -647,13 +523,13 @@ locations: !!omap
       short: 'You''re in debris room.'
     conditions: {}
     travel: [
-      {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]},
+      {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:
@@ -661,11 +537,12 @@ locations: !!omap
       short: !!null
     conditions: {}
     travel: [
-      {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]},
+      {verbs: [DEPRE], cond: [not, GRATE, GRATE_CLOSED],
+                       action: [goto, LOC_GRATE]},
+      {verbs: [ENTRA], action: [goto, LOC_BELOWGRATE]},
+      {verbs: [DOWN, EAST, DEBRI], action: [goto, LOC_DEBRIS]},
+      {verbs: [INWAR, UPWAR, WEST], action: [goto, LOC_BIRD]},
+      {verbs: [PIT], action: [goto, LOC_PITTOP]},
     ]
 - LOC_BIRD:
     description:
@@ -677,11 +554,12 @@ locations: !!omap
     conditions: {}
     hints: [*bird] 
     travel: [
-      {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]},
+      {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:
@@ -691,13 +569,15 @@ locations: !!omap
       short: 'You''re at top of small pit.'
     conditions: {}
     travel: [
-      {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]},
+      {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: [DOWN, PIT, STEPS], cond: [carry, NUGGET],
+                               action: [goto, LOC_NECKBROKE]},
+      {verbs: [DOWN], action: [goto, LOC_MISTHALL]},
+      {verbs: [CRACK, WEST], action: [goto, LOC_CRACK]},
     ]
 - LOC_MISTHALL:
     description:
@@ -712,13 +592,13 @@ 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'],
+      {verbs: [LEFT, SOUTH], action: [goto, LOC_NUGGET]},
+      {verbs: [FORWA, HALL, WEST], action: [goto, LOC_EASTBANK]},
+      {verbs: [STAIR, DOWN, 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]},
+      {verbs: [UPWAR], action: [goto, LOC_PITTOP]},
+      {verbs: [Y2], action: [goto, LOC_JUMBLE]},
     ]
 - LOC_CRACK:
     description:
@@ -738,15 +618,15 @@ 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, FISSURE, UNBRIDGED],
-                                              action: ["speak", CROSS_BRIDGE]},
-      {verbs: ['FORWA'], cond: [not, FISSURE, BRIDGED],
+      {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'],
+      {verbs: [OVER, ACROS, WEST, CROSS],
                                               cond: [not, FISSURE, BRIDGED],
-                                              action: ["speak", NO_CROSS]},
-      {verbs: ['OVER'], action: [goto, LOC_WESTBANK]},
+                                              action: [speak, NO_CROSS]},
+      {verbs: [OVER], action: [goto, LOC_WESTBANK]},
     ]
 - LOC_NUGGET:
     description:
@@ -756,7 +636,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:
@@ -767,17 +647,17 @@ locations: !!omap
     conditions: {DEEP: true}
     hints: [*snake]
     travel: [
-      {verbs: ['STAIR', 'UPWAR', 'EAST'], action: [goto, LOC_MISTHALL]},
-      {verbs: ['NORTH', 'RIGHT'], cond: [not, SNAKE, SNAKE_BLOCKS],
+      {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],
+      {verbs: [SOUTH, LEFT], cond: [not, SNAKE, SNAKE_BLOCKS],
                                   action: [goto, LOC_SOUTHSIDE]},
-      {verbs: ['WEST', 'FORWA'], cond: [not, SNAKE, SNAKE_BLOCKS],
+      {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]},
+      {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:
@@ -811,10 +691,10 @@ 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: ['HOLE'], action: ["speak", TOO_FAR]},
+      {verbs: [EAST, ACROS], action: [goto, LOC_EASTEND]},
+      {verbs: [WEST, SLAB], action: [goto, LOC_SLAB]},
+      {verbs: [DOWN, PIT], action: [goto, LOC_WESTPIT]},
+      {verbs: [HOLE], action: [speak, TOO_FAR]},
     ]
 - LOC_EASTPIT:
     description:
@@ -824,7 +704,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:
@@ -834,9 +714,10 @@ locations: !!omap
       short: 'You''re in west pit.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['UPWAR', 'OUT'], action: [goto, LOC_WESTEND]},
-      {verbs: ['CLIMB'], cond: [not, PLANT, 2], action: [goto, LOC_BUILDING1]},
-      {verbs: ['CLIMB'], action: [goto, LOC_CLIMBSTALK]},
+      {verbs: [UPWAR, OUT], action: [goto, LOC_WESTEND]},
+      {verbs: [CLIMB], cond: [not, PLANT, PLANT_GROWN],
+                       action: [goto, LOC_BUILDING1]},
+      {verbs: [CLIMB], action: [goto, LOC_CLIMBSTALK]},
     ]
 - LOC_CLIMBSTALK:
     description:
@@ -852,16 +733,16 @@ locations: !!omap
       short: 'You''re on west bank of fissure.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['JUMP'], cond: [not, FISSURE, UNBRIDGED],
-                        action: ["speak", CROSS_BRIDGE]},
-      {verbs: ['FORWA'], cond: [not, FISSURE, BRIDGED],
+      {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'],
+      {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]},
+                         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:
@@ -871,9 +752,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: [DOWN, HOLE], action: [goto, LOC_BROKEN]},
     ]
 - LOC_SOUTHSIDE:
     description:
@@ -881,7 +762,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:
@@ -891,8 +772,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:
@@ -900,7 +781,8 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: [], cond: [not, PLANT, 1], action: [goto, LOC_NOCLIMB]},
+      {verbs: [], cond: [not, PLANT, PLANT_BELLOWING],
+                  action: [goto, LOC_NOCLIMB]},
       {verbs: [], action: [goto, LOC_PLANTTOP]},
     ]
 - LOC_SNAKEBLOCK:
@@ -920,12 +802,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, EMERALD], 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:
@@ -933,8 +815,8 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['D', 'Y2'], action: [goto, LOC_Y2]},
-      {verbs: ['UPWAR'], action: [goto, LOC_MISTHALL]},
+      {verbs: [DOWN, Y2], action: [goto, LOC_Y2]},
+      {verbs: [UPWAR], action: [goto, LOC_MISTHALL]},
     ]
 - LOC_WINDOW1:
     description:
@@ -949,8 +831,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:
@@ -960,10 +842,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:
@@ -973,8 +855,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: [DOWN, PIT, CLIMB], action: [goto, LOC_SMALLPIT]},
     ]
 - LOC_SMALLPIT:
     description:
@@ -985,8 +867,9 @@ locations: !!omap
     conditions: {FLUID: true, DEEP: true}
     sound: STREAM_GURGLES
     travel: [
-      {verbs: ['CLIMB', 'UPWAR', 'OUT'], action: [goto, LOC_SMALLPITBRINK]},
-      {verbs: ['SLIT', 'STREA', 'D', 'UPSTR', 'DOWNS', 'ENTER', 'INWAR'], action: ["speak", DONT_FIT]},
+      {verbs: [CLIMB, UPWAR, OUT], action: [goto, LOC_SMALLPITBRINK]},
+      {verbs: [SLIT, STREA, DOWN, UPSTR, DOWNS, ENTER, INWAR],
+                                   action: [speak, DONT_FIT]},
     ]
 - LOC_DUSTY:
     description:
@@ -996,9 +879,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: [DOWN, HOLE, FLOOR], action: [goto, LOC_COMPLEX]},
+      {verbs: [BEDQU], action: [goto, LOC_BEDQUILT]},
     ]
 - LOC_PARALLEL1:
     description:
@@ -1019,10 +902,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:
@@ -1031,11 +914,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:
@@ -1044,9 +927,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:
@@ -1055,10 +938,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: [DOWN], action: [goto, LOC_DEADEND3]},
+      {verbs: [SOUTH], action: [goto, LOC_ALIKE6]},
+      {verbs: [NORTH], action: [goto, LOC_DEADEND9]},
     ]
 - LOC_ALIKE4:
     description:
@@ -1067,11 +950,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, DOWN], action: [goto, LOC_ALIKE14]},
     ]
 - LOC_DEADEND1:
     description:
@@ -1080,7 +963,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:
@@ -1089,7 +972,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:
@@ -1098,7 +981,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:
@@ -1107,8 +990,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:
@@ -1117,10 +1000,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: [DOWN], action: [goto, LOC_ALIKE7]},
+      {verbs: [SOUTH], action: [goto, LOC_ALIKE8]},
     ]
 - LOC_ALIKE7:
     description:
@@ -1129,10 +1012,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:
@@ -1141,12 +1024,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: [DOWN], action: [goto, LOC_DEADEND11]},
     ]
 - LOC_ALIKE9:
     description:
@@ -1155,9 +1038,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:
@@ -1166,7 +1049,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:
@@ -1175,10 +1058,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: [DOWN], action: [goto, LOC_DEADEND5]},
+      {verbs: [EAST], action: [goto, LOC_PITBRINK]},
     ]
 - LOC_DEADEND5:
     description:
@@ -1187,7 +1070,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:
@@ -1198,11 +1081,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: [DOWN, 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:
@@ -1210,7 +1093,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:
@@ -1231,9 +1114,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, DOWN, HOLE], action: [goto, LOC_CROSSOVER]},
     ]
 - LOC_LONGWEST:
     description:
@@ -1243,9 +1126,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: ["nodwarves"], action: [goto, LOC_DIFFERENT1]},
+      {verbs: [EAST], action: [goto, LOC_LONGEAST]},
+      {verbs: [NORTH], action: [goto, LOC_CROSSOVER]},
+      {verbs: [SOUTH], cond: ["nodwarves"], action: [goto, LOC_DIFFERENT1]},
     ]
 - LOC_CROSSOVER:
     description:
@@ -1253,10 +1136,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:
@@ -1264,7 +1147,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:
@@ -1277,10 +1160,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:
@@ -1290,18 +1173,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: [DOWN], cond: [pct, 65], action: [speak, FUTILE_CRAWL]},
+      {verbs: [DOWN], action: [goto, LOC_ANTEROOM]},
     ]
 - LOC_SWISSCHEESE:
     description:
@@ -1312,13 +1195,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:
@@ -1331,9 +1214,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: [DOWN, PIT], action: [goto, LOC_EASTPIT]},
     ]
 - LOC_SLAB:
     description:
@@ -1346,9 +1229,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:
@@ -1356,12 +1239,12 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['D', 'SLAB'], action: [goto, LOC_SLAB]},
-      {verbs: ['SOUTH'], cond: [not, DRAGON, DRAGON_BARS],
+      {verbs: [DOWN, SLAB], action: [goto, LOC_SLAB]},
+      {verbs: [SOUTH], cond: [not, DRAGON, DRAGON_BARS],
                          action: [goto, LOC_SECRET5]},
-      {verbs: ['SOUTH'], action: [goto, LOC_SECRET4]},
-      {verbs: ['NORTH'], action: [goto, LOC_MIRRORCANYON]},
-      {verbs: ['RESER'], action: [goto, LOC_RESERVOIR]},
+      {verbs: [SOUTH], action: [goto, LOC_SECRET4]},
+      {verbs: [NORTH], action: [goto, LOC_MIRRORCANYON]},
+      {verbs: [RESER], action: [goto, LOC_RESERVOIR]},
     ]
 - LOC_SECRET2:
     description:
@@ -1369,9 +1252,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: [DOWN, PASSA], action: [goto, LOC_BEDQUILT]},
+      {verbs: [SOUTH], action: [goto, LOC_TOPSTALACTITE]},
     ]
 - LOC_THREEJUNCTION:
     description:
@@ -1382,9 +1265,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:
@@ -1392,10 +1275,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:
@@ -1403,7 +1286,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:
@@ -1414,10 +1297,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, DRAGON, DRAGON_BARS], 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_BARS], action: [goto, LOC_SECRET5]},
+      {verbs: [WEST], action: [goto, LOC_SECRET6]},
+      {verbs: [DOWN], action: [goto, LOC_WIDEPLACE]},
     ]
 - LOC_WIDEPLACE:
     description:
@@ -1425,8 +1308,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:
@@ -1434,7 +1317,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['NORTH'], action: [goto, LOC_WIDEPLACE]},
+      {verbs: [NORTH], action: [goto, LOC_WIDEPLACE]},
     ]
 - LOC_TALL:
     description:
@@ -1444,9 +1327,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:
@@ -1454,7 +1337,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SOUTH'], action: [goto, LOC_TALL]},
+      {verbs: [SOUTH], action: [goto, LOC_TALL]},
     ]
 - LOC_SEWER:
     description:
@@ -1473,10 +1356,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:
@@ -1485,7 +1368,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:
@@ -1494,7 +1377,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:
@@ -1502,9 +1385,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:
@@ -1512,9 +1395,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:
@@ -1522,7 +1405,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:
@@ -1531,7 +1414,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:
@@ -1540,7 +1423,7 @@ locations: !!omap
     conditions: {DEEP: true, NOBACK: true}
     hints: [*maze]
     travel: [
-      {verbs: ['UPWAR', 'D'], action: [goto, LOC_ALIKE4]},
+      {verbs: [UPWAR, DOWN], action: [goto, LOC_ALIKE4]},
     ]
 - LOC_NARROW:
     description:
@@ -1551,9 +1434,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: [DOWN, CLIMB, EAST], action: [goto, LOC_WESTPIT]},
+      {verbs: [JUMP], action: [goto, LOC_NECKBROKE]},
+      {verbs: [WEST, GIANT], action: [goto, LOC_GIANTROOM]},
     ]
 - LOC_NOCLIMB:
     description:
@@ -1580,8 +1463,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: [DOWN, CLIMB], action: [goto, LOC_LOWROOM]},
     ]
 - LOC_GIANTROOM:
     description:
@@ -1592,9 +1475,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:
@@ -1602,7 +1485,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:
@@ -1611,10 +1494,10 @@ locations: !!omap
     conditions: {DEEP: true}
     sound: WIND_WHISTLES
     travel: [
-      {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]},
+      {verbs: [SOUTH, GIANT, PASSA], action: [goto, LOC_GIANTROOM]},
+      {verbs: [NORTH, ENTER, CAVER], cond: [not, DOOR, DOOR_RUSTED],
+                                     action: [goto, LOC_WATERFALL]},
+      {verbs: [NORTH], action: [speak, RUSTY_DOOR]},
     ]
 - LOC_WATERFALL:
     description:
@@ -1626,9 +1509,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:
@@ -1638,7 +1521,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:
@@ -1649,9 +1532,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:
@@ -1664,8 +1547,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:
@@ -1677,9 +1560,9 @@ locations: !!omap
     conditions: {DEEP: true}
     hints: [*dark]
     travel: [
-      {verbs: ['NW', 'CAVER'], action: [goto, LOC_MISTY]},
-      {verbs: ['EAST', 'PASSA'], action: ["special", 1]},
-      {verbs: ['EAST'], action: [goto, LOC_PLOVER]},
+      {verbs: [NW, CAVER], action: [goto, LOC_MISTY]},
+      {verbs: [EAST, PASSA], action: ["special", 1]},
+      {verbs: [EAST], action: [goto, LOC_PLOVER]},
     ]
 - LOC_PLOVER:
     description:
@@ -1690,11 +1573,11 @@ locations: !!omap
     conditions: {DEEP: true, LIT: true}
     hints: [*dark]
     travel: [
-      {verbs: ['WEST', 'PASSA', 'OUT'], action: ["special", 1]},
-      {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]},
+      {verbs: [WEST, PASSA, OUT], action: ["special", 1]},
+      {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:
@@ -1703,7 +1586,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:
@@ -1713,7 +1596,7 @@ locations: !!omap
       short: 'You''re in arched hall.'
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['D', 'SHELL', 'OUT'], action: [goto, LOC_SHELLROOM]},
+      {verbs: [DOWN, SHELL, OUT], action: [goto, LOC_SHELLROOM]},
     ]
 - LOC_SHELLROOM:
     description:
@@ -1725,13 +1608,13 @@ 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, CLAM],
-                         action: ["speak", CLAM_BLOCKER]},
-      {verbs: ['SOUTH'], cond: [carry, OYSTER],
-                         action: ["speak", OYSTER_BLOCKER]},
-      {verbs: ['SOUTH'], action: [goto, LOC_COMPLEX]},
+      {verbs: [UPWAR, HALL], action: [goto, LOC_ARCHED]},
+      {verbs: [DOWN], 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:
@@ -1739,8 +1622,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: [DOWN], action: [goto, LOC_CULDESAC]},
     ]
 - LOC_CULDESAC:
     description:
@@ -1748,8 +1631,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:
@@ -1761,9 +1644,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:
@@ -1771,16 +1654,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: [DOWN], action: [goto, LOC_LONGWEST]},
     ]
 - LOC_WITTSEND:
     description:
@@ -1789,9 +1672,10 @@ 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: ['WEST'], action: ["speak", WAY_BLOCKED]},
+      {verbs: [EAST, NORTH, SOUTH, NE, SE, SW, NW, UPWAR, DOWN],
+              cond: [pct, 95], action: [speak, FUTILE_CRAWL]},
+      {verbs: [EAST], action: [goto, LOC_ANTEROOM]},
+      {verbs: [WEST], action: [speak, WAY_BLOCKED]},
     ]
 - LOC_MIRRORCANYON:
     description:
@@ -1808,8 +1692,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:
@@ -1824,8 +1708,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:
@@ -1836,11 +1720,11 @@ 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],
+      {verbs: [NORTH], action: [goto, LOC_SECRET2]},
+      {verbs: [DOWN, 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: [DOWN], cond: [pct, 50], action: [goto, LOC_ALIKE9]},
+      {verbs: [DOWN], action: [goto, LOC_ALIKE4]},
     ]
 - LOC_DIFFERENT2:
     description:
@@ -1848,16 +1732,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: [DOWN], action: [goto, LOC_DIFFERENT10]},
+      {verbs: [UPWAR], action: [goto, LOC_DIFFERENT11]},
+      {verbs: [SOUTH], action: [goto, LOC_DEADEND13]},
     ]
 - LOC_RESERVOIR:
     description:
@@ -1871,9 +1755,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, RESER, 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, WATERS_PARTED], action: [speak, BAD_DIRECTION]},
+      {verbs: [NORTH], action: [goto, LOC_RESBOTTOM]},
     ]
 - LOC_DEADEND12:
     description:
@@ -1881,7 +1765,7 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['SE'], action: [goto, LOC_ALIKE13]},
+      {verbs: [SE], action: [goto, LOC_ALIKE13]},
     ]
 - LOC_NE:
     description:
@@ -1901,7 +1785,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:
@@ -1918,8 +1802,8 @@ locations: !!omap
     conditions: {DEEP: true, LIT: true}
     sound: SNAKES_HISSING
     travel: [
-      {verbs: ['NE'], action: [goto, LOC_NE]},
-      {verbs: ['D'], action: ["speak", GRATE_NOWAY]},
+      {verbs: [NE], action: [goto, LOC_NE]},
+      {verbs: [DOWN], action: [speak, GRATE_NOWAY]},
     ]
 - LOC_SWCHASM:
     description:
@@ -1930,15 +1814,15 @@ 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, 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, CHASM, TROLL_BRIDGE],
+      {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, CHASM, TROLL_BRIDGE],
                         action: [goto, LOC_NOMAKE]},
-      {verbs: ['JUMP'], action: ["speak", CROSS_BRIDGE]},
+      {verbs: [JUMP], action: [speak, CROSS_BRIDGE]},
     ]
 - LOC_WINDING:
     description:
@@ -1948,17 +1832,19 @@ 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: [DOWN], action: [goto, LOC_LOWROOM]},
+      {verbs: [UPWAR], action: [goto, LOC_SWCHASM]},
     ]
+  # Following three rooms are where the dragon lives.  The code has a
+  # wired-in assumption that the dragon corpse goes to LOC_SECRET5,
 - LOC_SECRET4:
     description:
       long: 'You are in a secret canyon which exits to the north and east.'
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['NORTH', 'OUT'], action: [goto, LOC_SECRET1]},
-      {verbs: ['EAST', 'FORWA'], action: ["speak", NASTY_DRAGON]},
+      {verbs: [NORTH, OUT], action: [goto, LOC_SECRET1]},
+      {verbs: [EAST, FORWA], action: [speak, NASTY_DRAGON]},
     ]
 - LOC_SECRET5:
     description:
@@ -1966,8 +1852,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:
@@ -1975,8 +1861,8 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['EAST', 'OUT'], action: [goto, LOC_SECRET3]},
-      {verbs: ['NORTH', 'FORWA'], action: ["speak", NASTY_DRAGON]},
+      {verbs: [EAST, OUT], action: [goto, LOC_SECRET3]},
+      {verbs: [NORTH, FORWA], action: [speak, NASTY_DRAGON]},
     ]
 - LOC_NECHASM:
     description:
@@ -1986,13 +1872,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, 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: [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]},
     ]
 - LOC_CORRIDOR:
     description:
@@ -2003,10 +1889,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:
@@ -2018,11 +1904,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, DOWN], action: [goto, LOC_LIMESTONE]},
+      {verbs: [VIEW], action: [goto, LOC_BREATHTAKING]},
+      {verbs: [BARRE], action: [goto, LOC_BARRENFRONT]},
     ]
 - LOC_WARMWALLS:
     description:
@@ -2034,9 +1920,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:
@@ -2066,10 +1952,10 @@ locations: !!omap
     sound: TOTAL_ROAR
     loud: true
     travel: [
-      {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: [SOUTH, PASSA, OUT], action: [goto, LOC_WARMWALLS]},
+      {verbs: [FORK], action: [goto, LOC_FORK]},
+      {verbs: [DOWN], action: [speak, RIDICULOUS_ATTEMPT]},
+      {verbs: [JUMP], action: [goto, LOC_GRUESOME]},
     ]
 - LOC_BOULDERS2:
     description:
@@ -2082,9 +1968,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:
@@ -2094,9 +1980,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, DOWN, BARRE], action: [goto, LOC_BARRENFRONT]},
+      {verbs: [VIEW], action: [goto, LOC_BREATHTAKING]},
     ]
 - LOC_BARRENFRONT:
     description:
@@ -2106,11 +1992,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:
@@ -2121,9 +2006,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:
@@ -2131,16 +2016,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: [DOWN], 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:
@@ -2148,16 +2033,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: [DOWN], action: [goto, LOC_DIFFERENT11]},
+      {verbs: [SE], action: [goto, LOC_DIFFERENT2]},
     ]
 - LOC_DIFFERENT5:
     description:
@@ -2165,16 +2050,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: [DOWN], 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:
@@ -2182,16 +2067,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: [DOWN], 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:
@@ -2199,16 +2084,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: [DOWN], 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:
@@ -2216,16 +2101,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: [DOWN], 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:
@@ -2233,16 +2118,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: [DOWN], 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:
@@ -2250,16 +2135,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: [DOWN], 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:
@@ -2267,16 +2152,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: [DOWN], 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:
@@ -2284,9 +2169,9 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['NORTH', 'OUT'], action: [goto, LOC_DIFFERENT2]},
-      {verbs: ['SOUTH'], cond: [not, VEND, VEND_BLOCKS], 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:
@@ -2294,8 +2179,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:
@@ -2312,9 +2197,9 @@ locations: !!omap
     conditions: {DEEP: true}
     hints: [*ogre]
     travel: [
-      {verbs: ['WEST'], action: [goto, LOC_ROUGHHEWN]},
-      {verbs: ['NORTH'], cond: [with, OGRE], 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:
@@ -2322,7 +2207,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:
@@ -2331,10 +2216,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:
@@ -2343,10 +2228,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:
@@ -2355,9 +2240,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:
@@ -2366,8 +2251,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:
@@ -2376,9 +2261,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:
@@ -2387,10 +2272,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:
@@ -2399,10 +2284,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:
@@ -2411,10 +2296,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:
@@ -2423,10 +2308,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:
@@ -2435,10 +2320,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:
@@ -2447,10 +2332,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:
@@ -2459,10 +2344,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:
@@ -2471,10 +2356,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:
@@ -2483,10 +2368,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:
@@ -2495,10 +2380,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:
@@ -2507,9 +2392,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:
@@ -2518,9 +2403,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:
@@ -2529,10 +2414,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:
@@ -2541,10 +2426,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:
@@ -2553,10 +2438,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:
@@ -2565,10 +2450,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:
@@ -2577,10 +2462,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:
@@ -2591,7 +2476,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:
@@ -2604,8 +2489,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:
@@ -2616,9 +2501,10 @@ locations: !!omap
     conditions: {FLUID: true, DEEP: true}
     sound: WATERS_CRASHING
     travel: [
-      {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]},
+      {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:
@@ -2626,8 +2512,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: [DOWN, SE], action: [goto, LOC_RESNORTH]},
     ]
 - LOC_STEEP:
     description:
@@ -2635,8 +2521,8 @@ locations: !!omap
       short: !!null
     conditions: {DEEP: true}
     travel: [
-      {verbs: ['D', 'SE'], action: [goto, LOC_TREACHEROUS]},
-      {verbs: ['UPWAR', 'NW'], action: [goto, LOC_CLIFFBASE]},
+      {verbs: [DOWN, SE], action: [goto, LOC_TREACHEROUS]},
+      {verbs: [UPWAR, NW], action: [goto, LOC_CLIFFBASE]},
     ]
 - LOC_CLIFFBASE:
     description:
@@ -2648,8 +2534,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: [DOWN, SE], action: [goto, LOC_STEEP]},
+      {verbs: [UPWAR, CLIMB], action: [goto, LOC_CLIFFACE]},
     ]
 - LOC_CLIFFACE:
     description:
@@ -2657,9 +2543,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: [DOWN], action: [goto, LOC_CLIFFBASE]},
+      {verbs: [UPWAR], cond: [carry, OBJ_46], action: [goto, LOC_CLIFFTOP]},
+      {verbs: [UPWAR], action: [goto, LOC_FOOTSLIP]},
     ]
 - LOC_FOOTSLIP:
     description:
@@ -2690,8 +2576,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, DOWN], action: [goto, LOC_CLIFFACE]},
+      {verbs: [NE, CRAWL], action: [goto, LOC_REACHDEAD]},
     ]
 - LOC_REACHDEAD:
     description:
@@ -2699,7 +2585,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:
@@ -2783,9 +2669,11 @@ arbitrary_messages:  !!omap
 - GETS_YOU: 'It gets you!'
 - MISSES_YOU: 'It misses!'
 - UNSURE_FACING: 'I am unsure how you are facing.  Use compass points or nearby objects.'
-- NO_INOUT_HERE: 'I don''t know in from out here.  Use compass points or name something\nin the general direction you want to go.'
+- NO_INOUT_HERE: |-
+    I don't know in from out here.  Use compass points or name something
+    in the general direction you want to go.
 - CANT_APPLY: 'I don''t know how to apply that word here.'
-- AM_GAME: 'I''m game.  Would you care to explain how?'
+- AM_GAME: &am_game 'I''m game.  Would you care to explain how?'
 - NO_MORE_DETAIL: |-
       Sorry, but I am not allowed to give more detail.  I will repeat the
       long description of your location.
@@ -2793,22 +2681,27 @@ arbitrary_messages:  !!omap
 - W_IS_WEST: 'If you prefer, simply type w rather than west.'
 - 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!'
+- ALREADY_CARRYING: &already_carrying 'You are already carrying it!'
 - YOU_JOKING: 'You can''t be serious!'
-- BIRD_EVADES: 'The bird seemed unafraid at first, but as you approach it becomes\ndisturbed and you cannot catch it.'
+- BIRD_EVADES: |-
+    The bird seemed unafraid at first, but as you approach it becomes
+    disturbed and you cannot catch it.
 - CANNOT_CARRY: 'You can catch the bird, but you cannot carry it.'
 - NOTHING_LOCKED: 'There is nothing here with a lock!'
-- ARENT_CARRYING: 'You aren''t carrying it!'
-- BIRD_ATTACKS: 'The little bird attacks the green snake, and in an astounding flurry\ndrives the snake away.'
+- ARENT_CARRYING: &arent_carrying 'You aren''t carrying it!'
+- BIRD_ATTACKS: |-
+    The little bird attacks the green snake, and in an astounding flurry
+    drives the snake away.
 - NO_KEYS: 'You have no keys!'
 - NO_LOCK: 'It has no lock.'
-- NOT_LOCKABLE: 'I don''t know how to lock or unlock such a thing.'
+- NOT_LOCKABLE: &not_lockable 'I don''t know how to lock or unlock such a thing.'
 - ALREADY_LOCKED: 'It was already locked.'
 - ALREADY_UNLOCKED: 'It was already unlocked.'
-- URN_EMPTY: 'The urn is empty and will not light.'
-- 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?'
+- BEAR_BLOCKS: |-
+    There is no way to get past the bear to unlock the chain, which is
+    probably just as well.
+- NOTHING_HAPPENS: &nothing_happens 'Nothing happens.'
+- WHERE_QUERY: &where_query 'Where?'
 - NO_TARGET: 'There is nothing here to attack.'
 - BIRD_DEAD: 'The little bird is now dead.  Its body disappears.'
 - SNAKE_WARNING: 'Attacking the snake both doesn''t work and is very dangerous.'
@@ -2826,19 +2719,16 @@ arbitrary_messages:  !!omap
       I don't know where the cave is, but hereabouts no stream can run on
       the surface for long.  I would try the stream.
 - NEED_DETAIL: 'I need more detailed instructions to do that.'
-- NEARBY: |-
+- NEARBY: &nearby |-
       I can only tell you what you see as you move about and manipulate
       things.  I cannot tell you where remote things are.
 - OGRE_SNARL: 'The ogre snarls and shoves you back.'
-- HUH_MAN: 'Huh?'
+- HUH_MAN: &huh_man 'Huh?'
 - WELCOME_YOU: 'Welcome to Adventure!!  Would you like instructions?'
-- REQUIRES_DYNAMITE: 'Blasting requires dynamite.'
+- REQUIRES_DYNAMITE: &requires_dynamite 'Blasting requires dynamite.'
 - FEET_WET: 'Your feet are now wet.'
 - LOST_APPETITE: 'I think I just lost my appetite.'
 - THANKS_DELICIOUS: 'Thank you, it was delicious!'
-- STREAM_WATER: 'You have taken a drink from the stream.  The water tastes strongly of\nminerals, but is not unpleasant.  It is extremely cold.'
-- BOTTLE_EMPTY: 'The bottle of water is now empty.'
-- RUB_NOGO: 'Rubbing the electric lamp is not particularly rewarding.  Anyway,\nnothing exciting happens.'
 - PECULIAR_NOTHING: 'Peculiar.  Nothing unexpected happens.'
 - GROUND_WET: 'Your bottle is empty and the ground is wet.'
 - CANT_POUR: 'You can''t pour that.'
@@ -2852,43 +2742,74 @@ arbitrary_messages:  !!omap
 - NO_CROSS: 'There is no way across the fissure.'
 - NO_CARRY: 'You''re not carrying anything.'
 - NOW_HOLDING: 'You are currently holding the following:'
-- BIRD_PINING: 'It''s not hungry (it''s merely pinin'' for the fjords).  Besides, you\nhave no bird seed.'
+- BIRD_PINING: |-
+    It's not hungry (it's merely pinin' for the fjords).  Besides, you
+    have no bird seed.
 - BIRD_DEVOURED: 'The snake has now devoured your bird.'
 - NOTHING_EDIBLE: 'There''s nothing here it wants to eat (except perhaps you).'
 - REALLY_MAD: 'You fool, dwarves eat only coal!  Now you''ve made him *REALLY* mad!!'
 - NO_CONTAINER: 'You have nothing in which to carry it.'
 - BOTTLE_FULL: 'Your bottle is already full.'
 - NO_LIQUID: 'There is nothing here with which to fill the bottle.'
-- BOTTLED_WATER: 'Your bottle is now full of water.'
-- BOTTLED_OIL: 'Your bottle is now full of oil.'
-- CANT_FILL: 'You can''t fill that.'
-- RIDICULOUS_ATTEMPT: 'Don''t be ridiculous!'
+- RIDICULOUS_ATTEMPT: &ridiculous_attempt 'Don''t be ridiculous!'
 - RUSTY_DOOR: 'The door is extremely rusty and refuses to open.'
 - SHAKING_LEAVES: 'The plant indignantly shakes the oil off its leaves and asks, "Water?"'
-- RUSTED_HINGES: 'The hinges are quite thoroughly rusted now and won''t budge.'
-- OILED_NINGES: 'The oil has freed up the hinges so that the door will now move,\nalthough it requires some effort.'
 - DEEP_ROOTS: 'The plant has exceptionally deep roots and cannot be pulled free.'
 - KNIVES_VANISH: 'The dwarves'' knives vanish as they strike the walls of the cave.'
-- MUST_DROP: 'Something you''re carrying won''t fit through the tunnel with you.\nYou''d best take inventory and drop something.'
+- MUST_DROP: |-
+    Something you're carrying won't fit through the tunnel with you.
+    You'd best take inventory and drop something.
 - CLAM_BLOCKER: 'You can''t fit this five-foot clam through that little passage!'
 - OYSTER_BLOCKER: 'You can''t fit this five-foot oyster through that little passage!'
 - DROP_CLAM: 'I advise you to put down the clam before opening it.  >STRAIN!<'
 - DROP_OYSTER: 'I advise you to put down the oyster before opening it.  >WRENCH!<'
 - CLAM_OPENER: 'You don''t have anything strong enough to open the clam.'
 - OYSTER_OPENER: 'You don''t have anything strong enough to open the oyster.'
-- PEARL_FALLS: 'A glistening pearl falls out of the clam and rolls away.  Goodness,\nthis must really be an oyster.  (I never was very good at identifying\nbivalves.)  Whatever it is, it has now snapped shut again.'
-- OYSTER_OPENS: 'The oyster creaks open, revealing nothing but oyster inside.  It\npromptly snaps shut again.'
-- WAY_BLOCKED: 'You have crawled around in some little holes and found your way\nblocked by a recent cave-in.  You are now back in the main passage.'
+- PEARL_FALLS: |-
+    A glistening pearl falls out of the clam and rolls away.  Goodness,
+    this must really be an oyster.  (I never was very good at identifying
+    bivalves.)  Whatever it is, it has now snapped shut again.
+- OYSTER_OPENS: |-
+    The oyster creaks open, revealing nothing but oyster inside.  It
+    promptly snaps shut again.
+- WAY_BLOCKED: |-
+    You have crawled around in some little holes and found your way
+    blocked by a recent cave-in.  You are now back in the main passage.
 - PIRATE_RUSTLES: 'There are faint rustling noises from the darkness behind you.'
-- PIRATE_POUNCES: 'Out from the shadows behind you pounces a bearded pirate!  "Har, har,"\nhe chortles, "I''ll just take all this booty and hide it away with me\nchest deep in the maze!"  He snatches your treasure and vanishes into\nthe gloom.'
-- CAVE_CLOSING: 'A sepulchral voice reverberating through the cave, says, "Cave closing\nsoon.  All adventurers exit immediately through main office."'
-- EXIT_CLOSED: 'A mysterious recorded voice groans into life and announces:\n   "This exit is closed.  Please leave via main office."'
-- DEATH_CLOSING: 'It looks as though you''re dead.  Well, seeing as how it''s so close to\nclosing time anyway, I think we''ll just call it a day.'
-- CAVE_CLOSED: 'The sepulchral voice intones, "The cave is now closed."  As the echoes\nfade, there is a blinding flash of light (and a small puff of orange\nsmoke). . . .    As your eyes refocus, you look around and find...'
-- VICTORY_MESSAGE: 'There is a loud explosion, and a twenty-foot hole appears in the far\nwall, burying the dwarves in the rubble.  You march through the hole\nand find yourself in the main office, where a cheering band of\nfriendly elves carry the conquering adventurer off into the sunset.'
-- DEFEAT_MESSAGE: 'There is a loud explosion, and a twenty-foot hole appears in the far\nwall, burying the snakes in the rubble.  A river of molten lava pours\nin through the hole, destroying everything in its path, including you!'
-- SPLATTER_MESSAGE: 'There is a loud explosion, and you are suddenly splashed across the\nwalls of the room.'
-- DWARVES_AWAKEN: 'The resulting ruckus has awakened the dwarves.  There are now several\nthreatening little dwarves in the room with you!  Most of them throw\nknives at you!  All of them get you!'
+- PIRATE_POUNCES: |-
+    Out from the shadows behind you pounces a bearded pirate!  "Har, har,"
+    he chortles, "I'll just take all this booty and hide it away with me
+    chest deep in the maze!"  He snatches your treasure and vanishes into
+    the gloom.
+- CAVE_CLOSING: |-
+    A sepulchral voice reverberating through the cave, says, "Cave closing
+    soon.  All adventurers exit immediately through main office."
+- EXIT_CLOSED: |-
+    A mysterious recorded voice groans into life and announces:
+       "This exit is closed.  Please leave via main office."
+- DEATH_CLOSING: |-
+    It looks as though you're dead.  Well, seeing as how it's so close to
+    closing time anyway, I think we'll just call it a day.
+- CAVE_CLOSED: |-
+    The sepulchral voice intones, "The cave is now closed."  As the echoes
+    fade, there is a blinding flash of light (and a small puff of orange
+    smoke). . . .    As your eyes refocus, you look around and find...
+- VICTORY_MESSAGE: |-
+    There is a loud explosion, and a twenty-foot hole appears in the far
+    wall, burying the dwarves in the rubble.  You march through the hole
+    and find yourself in the main office, where a cheering band of
+    friendly elves carry the conquering adventurer off into the sunset.
+- DEFEAT_MESSAGE: |-
+    There is a loud explosion, and a twenty-foot hole appears in the far
+    wall, burying the snakes in the rubble.  A river of molten lava pours
+    in through the hole, destroying everything in its path, including you!
+- SPLATTER_MESSAGE: |-
+    There is a loud explosion, and you are suddenly splashed across the
+    walls of the room.
+- DWARVES_AWAKEN: |-
+    The resulting ruckus has awakened the dwarves.  There are now several
+    threatening little dwarves in the room with you!  Most of them throw
+    knives at you!  All of them get you!
 - UNHAPPY_BIRD: 'Oh, leave the poor unhappy bird alone.'
 - NEEDED_NEARBY: 'I daresay whatever you want is around here somewhere.'
 - NOT_CONNECTED: 'You can''t get there from here.'
@@ -2896,7 +2817,7 @@ arbitrary_messages:  !!omap
 - WITHOUT_SUSPENDS: 'Now let''s see you do it without suspending in mid-Adventure.'
 - FILL_INVALID: 'There is nothing here with which to fill it.'
 - SHATTER_VASE: 'The sudden change in temperature has delicately shattered the vase.'
-- BEYOND_POWER: 'It is beyond your power to do that.'
+- BEYOND_POWER: &beyond_power 'It is beyond your power to do that.'
 - NOT_KNOWHOW: &not_knowhow 'I don''t know how.'
 - TOO_FAR: 'It is too far up for you to reach.'
 - DWARF_SMOKE: |-
@@ -2904,86 +2825,142 @@ arbitrary_messages:  !!omap
       black smoke.
 - SHELL_IMPERVIOUS: 'The shell is very strong and is impervious to attack.'
 - START_OVER: 'What''s the matter, can''t you read?  Now you''d best start over.'
+- WELL_POINTLESS: 'Well, that was remarkably pointless.'
 - DRAGON_SCALES: 'The axe bounces harmlessly off the dragon''s thick scales.'
 - NASTY_DRAGON: 'The dragon looks rather nasty.  You''d best not try to get by.'
-- BIRD_BURNT: 'The little bird attacks the green dragon, and in an astounding flurry\ngets burnt to a cinder.  The ashes blow away.'
-- ON_WHAT: 'On what?'
-- BRIEF_CONFIRM: 'Okay, from now on I''ll only describe a place in full the first time\nyou come to it.  To get the full description, say "look".'
-- ROCKY_TROLL: 'Trolls are close relatives with the rocks and have skin as tough as\nthat of a rhinoceros.  The troll fends off your blows effortlessly.'
-- TROLL_RETURNS: 'The troll deftly catches the axe, examines it carefully, and tosses it\nback, declaring, "Good workmanship, but it''s not valuable enough."'
+- BIRD_BURNT: |-
+    The little bird attacks the green dragon, and in an astounding flurry
+    gets burnt to a cinder.  The ashes blow away.
+- BRIEF_CONFIRM: |-
+    Okay, from now on I'll only describe a place in full the first time
+    you come to it.  To get the full description, say "look".
+- ROCKY_TROLL: |-
+    Trolls are close relatives with the rocks and have skin as tough as
+    that of a rhinoceros.  The troll fends off your blows effortlessly.
+- TROLL_RETURNS: |-
+    The troll deftly catches the axe, examines it carefully, and tosses it
+    back, declaring, "Good workmanship, but it's not valuable enough."
 - TROLL_SATISFIED: 'The troll catches your treasure and scurries away out of sight.'
 - TROLL_BLOCKS: 'The troll refuses to let you cross.'
 - BRIDGE_GONE: 'There is no longer any way across the chasm.'
-- BRIDGE_COLLAPSE: 'Just as you reach the other side, the bridge buckles beneath the\nweight of the bear, which was still following you around.  You\nscrabble desperately for support, but as the bridge collapses you\nstumble back and fall into the chasm.'
-- 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??'
 - 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.'
 - BEAR_CHAINED: 'The bear is still chained to the wall.'
 - STILL_LOCKED: 'The chain is still locked.'
 - CHAIN_UNLOCKED: 'The chain is now unlocked.'
 - CHAIN_LOCKED: 'The chain is now locked.'
 - 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?'
 - 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_DIM: |-
+    Your lamp is getting dim.  You'd best start wrapping this up, unless
+    you can find some fresh batteries.  I seem to recall there's a vending
+    machine in the maze.  Bring some coins with you.
 - LAMP_OUT: 'Your lamp has run out of power.'
 - PLEASE_ANSWER: 'Please answer the question.'
-- PIRATE_SPOTTED: 'There are faint rustling noises from the darkness behind you.  As you\nturn toward them, the beam of your lamp falls across a bearded pirate.\nHe is carrying a large chest.  "Shiver me timbers!" he cries, "I''ve\nbeen spotted!  I''d best hie meself off to the maze to hide me chest!"\nWith that, he vanishes into the gloom.'
+- PIRATE_SPOTTED: |-
+    There are faint rustling noises from the darkness behind you.  As you
+    turn toward them, the beam of your lamp falls across a bearded pirate.
+    He is carrying a large chest.  "Shiver me timbers!" he cries, "I've
+    been spotted!  I'd best hie meself off to the maze to hide me chest!"
+    With that, he vanishes into the gloom.
 - GET_BATTERIES: 'Your lamp is getting dim.  You''d best go back for those batteries.'
-- 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.'
-- 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."'
-- DONT_UNDERSTAND: 'I''m afraid I don''t understand.'
+- REPLACE_BATTERIES: |-
+    Your lamp is getting dim.  I'm taking the liberty of replacing the
+    batteries.
+- MISSING_BATTERIES: |-
+    Your lamp is getting dim, and you're out of spare batteries.  You'd
+    best start wrapping this up.
+- REMOVE_MESSAGE: |-
+    You sift your fingers through the dust, but succeed only in
+    obliterating the cryptic message.
+- CLUE_QUERY: |-
+    Hmmm, this looks like a clue, which means it'll cost you 10 points to
+    read 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
+    information to escape?  Sorry, but this initial hint is all you get."
+- DONT_UNDERSTAND: &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.'
-- PROD_DWARF: 'You prod the nearest dwarf, who wakes up grumpily, takes one look at\nyou, curses, and grabs for his axe.'
+- BREAK_MIRROR: |-
+    You strike the mirror a resounding blow, whereupon it shatters into a
+    myriad tiny fragments.
+- PROD_DWARF: |-
+    You prod the nearest dwarf, who wakes up grumpily, takes one look at
+    you, curses, and grabs for his axe.
 - THIS_ACCEPTABLE: 'Is this acceptable?'
 # This message is not currently used
-- ALREADY_OVER: 'This adventure is already over.  To start a new adventure, or to\nresume an earlier adventure, please run a fresh copy of the program.'
+#- ALREADY_OVER: |-
+#    This adventure is already over.  To start a new adventure, or to
+#    resume an earlier adventure, please run a fresh copy of the program.
 - OGRE_FULL: 'The ogre doesn''t appear to be hungry.'
-- 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
+- OGRE_DODGE: |-
+    The ogre, who despite his bulk is quite agile, easily dodges your
+    attack.  He seems almost amused by your puny effort.
+- OGRE_PANIC1: |-
+    The ogre, distracted by your rush, is struck by the knife.  With a
+    blood-curdling yell he turns and bounds after the dwarves, who flee
+    in panic.  You are left alone in the room.
+- OGRE_PANIC2: |-
+    The ogre, distracted by your rush, is struck by the knife.  With a
+    blood-curdling yell he turns and bounds after the dwarf, who flees
+    in panic.  You are left alone in the room.
 - 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.'
-- URN_LIT: 'The urn is now lit.'
-- URN_DARK: 'The urn is now dark.'
-- WATER_URN: 'You empty the bottle into the urn, which promptly ejects the water\nwith uncanny accuracy, squirting you directly between the eyes.'
+- NECKLACE_FLY: |-
+    The bird flies about agitatedly for a moment, then disappears through
+    the crack.  It reappears shortly, carrying in its beak a jade
+    necklace, which it drops at your feet.
+- WATER_URN: |-
+    You empty the bottle into the urn, which promptly ejects the water
+    with uncanny accuracy, squirting you directly between the eyes.
 - OIL_URN: 'Your bottle is now empty and the urn is full of oil.'
 - FULL_URN: 'The urn is already full of oil.'
 - URN_NOPOUR: 'There''s no way to get the oil out of the urn.'
 - URN_NOBUDGE: 'The urn is far too firmly embedded for your puny strength to budge it.'
-- URN_GENIES: 'As you rub the urn, there is a flash of light and a genie appears.\nHis aspect is stern as he advises: "One who wouldst traffic in\nprecious stones must first learn to recognize the signals thereof."\nHe wrests the urn from the stone, leaving a small cavity.  Turning to\nface you again, he fixes you with a steely eye and intones: "Caution!"\nGenie and urn vanish in a cloud of amber smoke.  The smoke condenses\nto form a rare amber gemstone, resting in the cavity in the rock.'
+- URN_GENIES: |-
+    As you rub the urn, there is a flash of light and a genie appears.
+    His aspect is stern as he advises: "One who wouldst traffic in
+    precious stones must first learn to recognize the signals thereof."
+    He wrests the urn from the stone, leaving a small cavity.  Turning to
+    face you again, he fixes you with a steely eye and intones: "Caution!"
+    Genie and urn vanish in a cloud of amber smoke.  The smoke condenses
+    to form a rare amber gemstone, resting in the cavity in the rock.
 - DOUGHNUT_HOLES: 'I suppose you collect doughnut holes, too?'
 - GEM_FITS: 'The gem fits easily into the cavity.'
 - RUG_RISES: 'The persian rug stiffens and rises a foot or so off the ground.'
-- RUG_WIGGLES: 'The persian rug draped over your shoulder seems to wriggle for a\nmoment, but then subsides.'
+- RUG_WIGGLES: |-
+    The persian rug draped over your shoulder seems to wriggle for a
+    moment, but then subsides.
 - RUG_SETTLES: 'The persian rug settles gently to the ground.'
 - RUG_HOVERS: 'The rug hovers stubbornly where it is.'
 - RUG_NOTHING1: 'The rug does not appear inclined to cooperate.'
-- RUG_NOTHING2: 'If you mean to use the persian rug, it does not appear inclined to\ncooperate.'
+- RUG_NOTHING2: |-
+    If you mean to use the persian rug, it does not appear inclined to
+    cooperate.
 - FLAP_ARMS: 'Though you flap your arms furiously, it is to no avail.'
-- RUG_GOES: 'You board the persian rug, which promptly whisks you across the chasm.\nYou have time for a fleeting glimpse of a two thousand foot drop to a\nmighty river; then you find yourself on the other side.'
+- RUG_GOES: |-
+    You board the persian rug, which promptly whisks you across the chasm.
+    You have time for a fleeting glimpse of a two thousand foot drop to a
+    mighty river; then you find yourself on the other side.
 - RUG_RETURNS: 'The rug ferries you back across the chasm.'
 - ALL_SILENT: 'All is silent.'
 - STREAM_GURGLES: 'The stream is gurgling placidly.'
 - WIND_WHISTLES: 'The wind whistles coldly past your ears.'
 - STREAM_SPLASHES: 'The stream splashes loudly into the pool.'
 - NO_MEANING: 'You are unable to make anything of the splashing noise.'
-- MURMURING_SNORING: 'You can hear the murmuring of the beanstalks and the snoring of the\ndwarves.'
+- MURMURING_SNORING: |-
+    You can hear the murmuring of the beanstalks and the snoring of the
+    dwarves.
 - SNAKES_HISSING: 'A loud hissing emanates from the snake pit.'
 - DULL_RUMBLING: 'The air is filled with a dull rumbling sound.'
 - LOUD_ROAR: 'The roar is quite loud here.'
 - TOTAL_ROAR: 'The roaring is so loud that it drowns out all other sound.'
-- BIRD_CRAP: 'The bird eyes you suspiciously and flutters away.  A moment later you\nfeel something wet land on your head, but upon looking up you can see\nno sign of the culprit.'
+- BIRD_CRAP: |-
+    The bird eyes you suspiciously and flutters away.  A moment later you
+    feel something wet land on your head, but upon looking up you can see
+    no sign of the culprit.
 - FEW_DROPS: 'There are only a few drops--not enough to carry.'
 - NOT_BRIGHT: '(Uh, y''know, that wasn''t very bright.)'
 - TOOK_LONG: 'It''s a pity you took so long about it.'
@@ -2995,25 +2972,49 @@ arbitrary_messages:  !!omap
 - ONE_HIT: 'One of them gets you!'
 - NONE_HIT: 'None of them hits you!'
 - DONT_KNOW: 'Sorry, I don''t know the word "%s".'
-- WHAT_DO: 'What do you want to do with the %L%L?' # FIXME: %L%L should become %L once parsing no longer depends on packed tokens
-- NO_SEE: 'I see no %L%L here.' # FIXME: %L%L should become %L once parsing no longer depends on packed tokens
-- DO_WHAT: '%C what?'
+- WHAT_DO: 'What do you want to do with the %s?'
+- NO_SEE: 'I see no %s here.'
+- DO_WHAT: '%s what?'
 - OKEY_DOKEY: 'Okay, "%s".'
 - GARNERED_POINTS: 'You have garnered %d out of a possible %d points, using %d turn%S.'
-- SUSPEND_WARNING: 'I can suspend your Adventure for you so that you can resume later, but\nit will cost you 5 points.'
+- SUSPEND_WARNING: |-
+    I can suspend your Adventure for you so that you can resume later, but
+    it will cost you 5 points.
 - HINT_COST: 'I am prepared to give you a hint, but it will cost you %d point%S.'
 - TOTAL_SCORE: 'You scored %d out of a possible %d, using %d turn%S.'
 - NEXT_HIGHER: 'To achieve the next higher rating, you need %d more point%S.'
-- NO_HIGHER: 'To achieve the next higher rating would be a neat trick!\nCongratulations!!'
+- NO_HIGHER: |-
+    To achieve the next higher rating would be a neat trick!
+    Congratulations!!
 - OFF_SCALE: 'You just went off my scale!!'
 - RESUME_HELP: 'To resume your Adventure, start a new game and then say "RESUME".'
-- TABLE_SPACE: 'Table space used:\n%d of %d words of messages   %d of %d travel options\n%d of %d vocabulary words    %d of %d locations\n%d of %d objects             %d of %d action verbs\n%d of %d "random" messages   %d of %d "class" messages\n%d of %d hints               %d of %d turn threshholds'
+# This message is not currently used
+#- TABLE_SPACE: |-
+#    Table space used:
+#    %d of %d words of messages   %d of %d travel options
+#    %d of %d vocabulary words    %d of %d locations
+#    %d of %d objects             %d of %d action verbs
+#    %d of %d "random" messages   %d of %d "class" messages
+#    %d of %d hints               %d of %d turn threshholds'
 - RESUME_ABANDON: 'To resume an earlier Adventure, you must abandon the current one.'
-- VERSION_SKEW: 'I''m sorry, but that Adventure was begun using Version%d.%d of the\nprogram, and this is Version%d.%d.  You must find the other version\nin order to resume that Adventure.'
+- VERSION_SKEW: |-
+    I'm sorry, but that Adventure was begun using Version %d.%d of the
+    save file format, and this program uses Version %d.%d.  You must find an instance
+    using that other version in order to resume that Adventure.
 # 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.'
-- TWIST_TURN: 'Sorry, but the path twisted and turned so much that I can''t figure\nout which way to go to get back.'
-- 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.'
+#- SAVE_TAMPERING: |-
+#    A dark fog creeps in to surround you.  From somewhere in the fog you
+#    hear a stern voice.  "This Adventure has been tampered with!  You have
+#    been dabbling in magic, knowing not the havoc you might cause thereby.
+#    Leave at once, before you do irrevocable harm!"  The fog thickens,
+#    until at last you can see nothing at all.  Your vision then clears,
+#    and you find yourself back in The Real World.
+- TWIST_TURN: |-
+    Sorry, but the path twisted and turned so much that I can't figure
+    out which way to go to get back.
+- GO_UNNEEDED: |-
+    You don't have to say "go" every time; just specify a direction or, if
+    it's nearby, name the place to which you wish to move.
 
 classes: 
 - threshold: 0
@@ -3037,24 +3038,33 @@ classes:
 - threshold: 429
   message: 'All of Adventuredom gives tribute to you, Adventurer Grandmaster!'
 - threshold: 9999
-  message: 'Adventuredom stands in awe -- you have now joined the ranks of the\n       W O R L D   C H A M P I O N   A D V E N T U R E R S !\nIt may interest you to know that the Dungeon-Master himself has, to\nmy knowledge, never achieved this threshhold in fewer than 330 turns.'
+  message: |-
+    'Adventuredom stands in awe -- you have now joined the ranks of the
+           W O R L D   C H A M P I O N   A D V E N T U R E R S !
+    It may interest you to know that the Dungeon-Master himself has, to
+    my knowledge, never achieved this threshhold in fewer than 330 turns.'
 
 turn_thresholds:
 - threshold: 350
   point_loss: 2
-  message: 'Tsk!  A wizard wouldn''t have to take 350 turns.  This is going to cost\nyou a couple of points.' 
+  message: |-
+    Tsk!  A wizard wouldn't have to take 350 turns.  This is going to cost
+    you a couple of points.
 - threshold: 500
   point_loss: 3
-  message: '500 turns?  That''s another few points you''ve lost.'  
+  message: '500 turns?  That''s another few points you''ve lost.'
 - threshold: 1000
   point_loss: 5
-  message: 'Are you still at it?  Five points off for exceeding 1000 turns!'  
+  message: 'Are you still at it?  Five points off for exceeding 1000 turns!'
 - threshold: 2500
   point_loss: 10
-  message: 'Good grief, don''t you *EVER* give up?  Do you realize you''ve spent\nover 2500 turns at this?  That''s another ten points off, a total of\ntwenty points lost for taking so long.'
+  message: |-
+    Good grief, don't you *EVER* give up?  Do you realize you've spent
+    over 2500 turns at this?  That's another ten points off, a total of
+    twenty points lost for taking so long.
   
 objects: !!omap
-- OBJ_0:
+- NO_OBJECT:
     inventory: !!null
     descriptions: !!null
 - KEYS:
@@ -3067,9 +3077,10 @@ objects: !!omap
     words: ['lamp', 'lante']
     inventory: 'Brass lantern'
     locations: LOC_BUILDING
+    states: [LAMP_DARK, LAMP_BRIGHT]
     descriptions:
-    - [LAMP_DARK, 'There is a shiny brass lamp nearby.']
-    - [LAMP_BRIGHT, 'There is a lamp shining nearby.']
+    - 'There is a shiny brass lamp nearby.'
+    - 'There is a lamp shining nearby.'
     changes:
     - 'Your lamp is now off.'
     - 'Your lamp is now on.'
@@ -3078,9 +3089,10 @@ objects: !!omap
     inventory: '*grate'
     locations: [LOC_GRATE, LOC_BELOWGRATE]
     immovable: true
+    states: [GRATE_CLOSED, GRATE_OPEN]  
     descriptions:
-    - [GRATE_CLOSED, 'The grate is locked.']
-    - [GRATE_OPEN, 'The grate is open.']
+    - 'The grate is locked.'
+    - 'The grate is open.'
     changes:
     - 'The grate is now locked.'
     - 'The grate is now unlocked.'
@@ -3107,6 +3119,7 @@ objects: !!omap
     inventory: '*steps'
     locations: [LOC_PITTOP, LOC_MISTHALL]
     immovable: true
+    states: [STEPS_DOWN, STEPS_UP]
     descriptions:
     - 'Rough stone steps lead down the pit.'
     - 'Rough stone steps lead up the dome.'
@@ -3114,25 +3127,39 @@ objects: !!omap
     words: ['bird']
     inventory: 'Little bird in cage'
     locations: LOC_BIRD
+    states: [BIRD_UNCAGED, BIRD_CAGED, BIRD_FOREST_UNCAGED]
     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.']
+    - 'A cheerful little bird is sitting here singing.'
+    - 'There is a little bird in the cage.'
+    - 'A cheerful little bird is sitting here singing.'
     sounds:
     - 'The bird''s singing is quite melodious.'
     - 'The bird does not seem inclined to sing while in the cage.'
     - 'It almost seems as though the bird is trying to tell you something.'
-    - 'To your surprise, you can understand the bird''s chirping; it is\nsinging about the joys of its forest home.'
+    - |-
+      To your surprise, you can understand the bird''s chirping; it is
+      singing about the joys of its forest home.
     - 'The bird does not seem inclined to sing while in the cage.'
-    - 'The bird is singing to you in gratitude for your having returned it to\nits home.  In return, it informs you of a magic word which it thinks\nyou may find useful somewhere near the Hall of Mists.  The magic word\nchanges frequently, but for now the bird believes it is "%s".  You\nthank the bird for this information, and it flies off into the forest.'
+    - |- 
+      The bird is singing to you in gratitude for your having returned it to
+      its home.  In return, it informs you of a magic word which it thinks
+      you may find useful somewhere near the Hall of Mists.  The magic word
+      changes frequently, but for now the bird believes it is "%s".  You
+      thank the bird for this information, and it flies off into the forest.
 - DOOR:
     words: ['door']
     inventory: '*rusty door'
     locations: LOC_IMMENSE
     immovable: true
+    states: [DOOR_RUSTED, DOOR_UNRUSTED]
     descriptions:
     - 'The way north is barred by a massive, rusty, iron door.'
     - 'The way north leads through a massive, rusty, iron door.'
+    changes:
+    - 'The hinges are quite thoroughly rusted now and won''t budge.'
+    - |-
+      The oil has freed up the hinges so that the door will now move,
+      although it requires some effort.
 - PILLOW:
     words: ['pillo', 'velve']
     inventory: 'Velvet pillow'
@@ -3144,27 +3171,34 @@ objects: !!omap
     inventory: '*snake'
     locations: LOC_KINGHALL
     immovable: true
+    states: [SNAKE_BLOCKS, SNAKE_CHASED]
     descriptions:
-    - [SNAKE_BLOCKS, 'A huge green fierce snake bars the way!']
-    - [SNAKE_CHASED, ''] # chased away
+    - 'A huge green fierce snake bars the way!'
+    - '' # chased away
     sounds:
     - 'The snake is hissing venomously.'
+    - ''
 - FISSURE:
     words: ['fissu']
     inventory: '*fissure'
     locations: [LOC_EASTBANK, LOC_WESTBANK]
     immovable: true
+    states: [UNBRIDGED, BRIDGED]
     descriptions:
-    - [UNBRIDGED, '']
-    - [BRIDGED, 'A crystal bridge now spans the fissure.']
-    - [VANISHED, 'The crystal bridge has vanished!']
+    - ''
+    - 'A crystal bridge spans the fissure.'
+    changes:
+    - 'The crystal bridge has vanished!'
+    - 'A crystal bridge now spans the fissure.'
 - OBJ_13:
     words: ['table']
     inventory: '*stone tablet'
     locations: LOC_DARKROOM
     immovable: true
     descriptions:
-    - 'A massive stone tablet imbedded in the wall reads:\n"Congratulations on bringing light into the dark-room!"'
+    - |-
+      A massive stone tablet imbedded in the wall reads:
+      "Congratulations on bringing light into the dark-room!"
     texts:
     - '"Congratulations on bringing light into the dark-room!"'
 - CLAM:
@@ -3192,7 +3226,9 @@ objects: !!omap
     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."'
+    - |-
+      I''m afraid the magazine is written in dwarvish.  But pencilled on one
+      cover you see, "Please leave the magazines at the construction site."
 - DWARF:
     words: ['dwarf', 'dwarv']
     inventory: !!null
@@ -3214,10 +3250,15 @@ objects: !!omap
     words: ['bottl', 'jar']
     inventory: 'Small bottle'
     locations: LOC_BUILDING
-    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.']
+    states: [WATER_BOTTLE, EMPTY_BOTTLE, OIL_BOTTLE]
+    descriptions: 
+    - 'There is a bottle of water here.'
+    - 'There is an empty bottle here.'
+    - 'There is a bottle of oil here.'
+    changes:
+    - 'Your bottle is now full of water.'
+    - 'The bottle of water is now empty.'
+    - 'Your bottle is now full of oil.'
 - WATER:
     words: ['water', 'h2o']
     inventory: 'Water in the bottle'
@@ -3239,13 +3280,15 @@ objects: !!omap
     inventory: '*plant'
     locations: LOC_WESTPIT
     immovable: true
+    states: [PLANT_THIRSTY, PLANT_BELLOWING, PLANT_GROWN]
     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.'
+    changes:
+    - 'You''ve over-watered the plant!  It''s shriveling up!  And now . . .'
     - 'The plant spurts into furious growth for a few seconds.'
     - 'The plant grows explosively, almost filling the bottom of the pit.'
-    - 'You''ve over-watered the plant!  It''s shriveling up!  And now . . .'
     sounds:
     - 'The plant continues to ask plaintively for water.'
     - 'The plant continues to demand water.'
@@ -3277,9 +3320,13 @@ objects: !!omap
     words: ['axe']
     inventory: 'Dwarf''s axe'
     locations: LOC_NOWHERE
+    states: [AXE_HERE, AXE_LOST]
     descriptions:
     - 'There is a little axe here.'
     - 'There is a little axe lying beside the bear.'
+    changes:
+    - ''
+    - 'The axe misses and lands near the bear where you can''t get at it.'
 - OBJ_29:
     words: ['drawi']
     inventory: '*cave drawings'
@@ -3297,10 +3344,11 @@ objects: !!omap
     inventory: '*dragon'
     locations: [LOC_SECRET4, LOC_SECRET6]
     immovable: true
+    states: [DRAGON_BARS, DRAGON_DEAD, DRAGON_BLOODLESS]
     descriptions:
-    - [DRAGON_BARS, 'A huge green fierce dragon bars the way!']
-    - [DRAGON_DEAD, 'The blood-specked body of a huge green dead dragon lies to one side.']
-    - [DRAGON_BLOODLESS, 'The body of a huge green dead dragon is lying off to one side.']
+    - '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.'
     changes:
     - ''
     - |-
@@ -3316,21 +3364,37 @@ objects: !!omap
     inventory: '*chasm'
     locations: [LOC_SWCHASM, LOC_NECHASM]
     immovable: true
+    states: [TROLL_BRIDGE, BRIDGE_WRECKED]
     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.']
+    - '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.'
+    changes:
+    - ''
+    - |- 
+        Just as you reach the other side, the bridge buckles beneath the
+        weight of the bear, which was still following you around.  You
+        scrabble desperately for support, but as the bridge collapses you
+        stumble back and fall into the chasm.
 - TROLL:
     words: ['troll']
     inventory: '*troll'
     locations: [LOC_SWCHASM, LOC_NECHASM]
     immovable: true
-    descriptions:
-    - [TROLL_UNPAID, 'A burly troll stands by the bridge and insists you throw him a\ntreasure before you may cross.']
-    - [TROLL_PAIDONCE, 'The troll steps out from beneath the bridge and blocks your way.']
-    - [TROLL_GONE, ''] # chased away
+    states: [TROLL_UNPAID, TROLL_PAIDONCE, TROLL_GONE]
+    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
+    changes:
+    - ''
+    - ''
+    - |-
+        The bear lumbers toward the troll, who lets out a startled shriek and
+        scurries away.  The bear soon gives up the pursuit and wanders back.
     sounds:
     - 'The troll sounds quite adamant in his demand for a treasure.'
     - 'The troll sounds quite adamant in his demand for a treasure.'
+    - ''
 - TROLL2:
     words: ['troll']
     inventory: '*phony troll'
@@ -3340,21 +3404,29 @@ objects: !!omap
     - 'The troll is nowhere to be seen.'
 - BEAR:
     words: ['bear']
-    inventory: !!null # bear uses rtext 141
+    inventory: !!null
     locations: LOC_BARRENROOM
     immovable: true
+    states: [UNTAMED_BEAR, SITTING_BEAR, CONTENTED_BEAR, BEAR_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, '']
+    - '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.'
+    - ''
+    changes:
+    - ''
+    - 'The bear eagerly wolfs down your food, after which he seems to calm\ndown considerably and even becomes rather friendly.'
+    - ''
+    - ''
 - MESSAG:
     words: ['messa']
     inventory: '*message in second maze'
     locations: LOC_NOWHERE
     immovable: true
     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."'
+    - |-
+        There is a message scrawled in the dust in a flowery script, reading:
+        "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."'
 - VOLCANO:
@@ -3368,9 +3440,14 @@ objects: !!omap
     inventory: '*vending machine'
     locations: LOC_DEADEND13
     immovable: true
+    states: [VEND_BLOCKS, VEND_UNBLOCKS]
     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.']
+    - |-
+        There is a massive and somewhat battered vending machine here.  The
+        instructions on it read: "Drop coins here to receive fresh batteries."
+    - |-
+        There is a massive vending machine here, swung back to reveal a
+        southward 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.'
@@ -3381,9 +3458,10 @@ objects: !!omap
     words: ['batte']
     inventory: 'Batteries'
     locations: LOC_NOWHERE
+    states: [FRESH_BATTERIES, DEAD_BATTERIES]
     descriptions:
-    - [FRESH_BATTERIES, 'There are fresh batteries here.']
-    - [DEAD_BATTERIES, 'Some worn-out batteries have been discarded nearby.']
+    - 'There are fresh batteries here.'
+    - 'Some worn-out batteries have been discarded nearby.'
 - OBJ_40:
     words: ['carpe', 'moss']
     inventory: '*carpet and/or moss and/or curtains'
@@ -3404,18 +3482,24 @@ objects: !!omap
     inventory: '*urn'
     locations: LOC_CLIFF
     immovable: true
+    states: [URN_EMPTY, URN_DARK, URN_LIT]
     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.'
+    changes:
+    - 'The urn is empty and will not light.'
+    - 'The urn is now dark.'
+    - 'The urn is now lit.'
 - CAVITY:
     words: ['cavit']
     inventory: '*cavity'
     locations: LOC_NOWHERE
     immovable: true
+    states: [CAVITY_FULL, CAVITY_EMPTY]
     descriptions:
-    - [CAVITY_FULL, ''] # something in it
-    - [CAVITY_EMPTY, 'There is a small urn-shaped cavity in the rock.']
+    - '' # something in it
+    - 'There is a small urn-shaped cavity in the rock.'
 - BLOOD:
     words: ['blood']
     inventory: '*blood'
@@ -3428,10 +3512,13 @@ objects: !!omap
     inventory: '*reservoir'
     locations: [LOC_RESERVOIR, LOC_RESNORTH]
     immovable: true
+    states: [WATERS_UNPARTED, WATERS_PARTED]
     descriptions:
     - ''
-    - [WATERS_PARTED, 'The waters have parted to form a narrow path across the reservoir.']
+    - 'The waters have parted to form a narrow path across the reservoir.'
+    changes:
     - 'The waters crash together again.'
+    - 'The waters have parted to form a narrow path across the reservoir.'
 - OBJ_46:
     words: ['appen', 'lepor']
     inventory: 'Leporine appendage'
@@ -3461,11 +3548,15 @@ objects: !!omap
     inventory: '*sign'
     locations: LOC_ANTEROOM
     immovable: true
+    states: [INGAME_SIGN, ENDGAME_SIGN]
     descriptions:
-    - [INGAME_SIGN, '']
-    - [ENDGAME_SIGN, '']
+    - ''
+    - ''
     texts:
-    - 'Cave under construction beyond this point.\n           Proceed at own risk.\n       [Witt Construction Company]'
+    - |-
+      Cave under construction beyond this point.
+                 Proceed at own risk.
+             [Witt Construction Company]
     - '"Treasure Vault.  Keys in main office."'
 - NUGGET:
     words: ['gold', 'nugge']
@@ -3514,10 +3605,11 @@ objects: !!omap
     inventory: 'Golden eggs'
     locations: LOC_GIANTROOM
     treasure: true
+    states: [EGGS_HERE, EGGS_VANISHED, EGGS_DONE]
     descriptions:
-    - [EGGS_HERE, 'There is a large nest here, full of golden eggs!']
-    - [EGGS_VANISHED, 'The nest of golden eggs has vanished!']
-    - [EGGS_DONE, 'Done!']
+    - 'There is a large nest here, full of golden eggs!'
+    - 'The nest of golden eggs has vanished!'
+    - 'Done!'
 - TRIDENT:
     words: ['tride']
     inventory: 'Jeweled trident'
@@ -3530,14 +3622,14 @@ objects: !!omap
     inventory: 'Ming vase'
     locations: LOC_ORIENTAL
     treasure: true
+    states: [VASE_WHOLE, VASE_DROPPED, VASE_BROKEN]
     descriptions:
-    - [VASE_WHOLE, 'There is a delicate, precious, ming vase here!']
-    - [VASE_RESTING, 'The vase is now resting, delicately, on a velvet pillow.']
-    - [VASE_BROKEN, 'The floor is littered with worthless shards of pottery.']
-    - [VASE_DROPS, 'The ming vase drops with a delicate crash.']
+    - 'There is a delicate, precious, ming vase here!'
+    - 'The floor is littered with worthless shards of pottery.'
+    - 'The floor is littered with worthless shards of pottery.'
     changes:
-    - ''
-    - ''
+    - 'The vase is now resting, delicately, on a velvet pillow.'
+    - 'The ming vase drops with a delicate crash.'
     - 'You have taken the vase and hurled it delicately to the ground.'
 - EMERALD:
     words: ['emera']
@@ -3567,10 +3659,11 @@ objects: !!omap
     locations: [LOC_SECRET4, LOC_SECRET6]
     immovable: true
     treasure: true
+    states: [RUG_FLOOR, RUG_DRAGON, RUG_HOVER]
     descriptions:
-    - [RUG_FLOOR, 'There is a persian rug spread out on the floor!']
-    - [RUG_DRAGON, 'The dragon is sprawled out on a persian rug!!']
-    - [RUG_HOVER, 'There is a persian rug here, hovering in mid-air!']
+    - 'There is a persian rug spread out on the floor!'
+    - 'The dragon is sprawled out on a persian rug!!'
+    - 'There is a persian rug here, hovering in mid-air!'
 - OBJ_63:
     words: ['spice']
     inventory: 'Rare spices'
@@ -3584,10 +3677,11 @@ objects: !!omap
     locations: LOC_BARRENROOM
     immovable: true
     treasure: true
+    states: [CHAIN_HEAP, CHAINING_BEAR, CHAIN_FIXED]
     descriptions:
-    - [CHAIN_HEAP, 'There is a golden chain lying in a heap on the floor!']
-    - [CHAINING_BEAR, 'The bear is locked to the wall with a golden chain!']
-    - [CHAIN_FIXED, 'There is a golden chain locked to the wall!']
+    - '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!'
 - RUBY:
     words: ['ruby']
     inventory: 'Giant ruby'
@@ -3608,6 +3702,7 @@ objects: !!omap
     inventory: 'Amber gemstone'
     locations: LOC_NOWHERE
     treasure: true
+    states: [AMBER_IN_URN, AMBER_IN_ROCK]
     descriptions:
     - 'There is a rare amber gemstone here!'
     - 'There is an amber gemstone resting in a small cavity in the rock!'
@@ -3648,25 +3743,141 @@ obituaries:
         me to do a decent reincarnation without any orange smoke, do you?
     yes_response: 'Okay, if you''re so smart, do it yourself!  I''m leaving!'
 
-specials: !!omap
-- SPC_0:
+actions: !!omap
+- ACT_0:
     message: !!null
     words: !!null
-- SPC_1:
-    message: !!null
+- CARRY:
+    message: *already_carrying
+    words: ['g', 'carry', 'take', 'keep', 'catch',
+            'steal', 'captu', 'get', 'tote', 'snarf']
+    oldstyle: false
+- 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']
+    oldstyle: false
+- 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: |-
+      You have taken a drink from the stream.  The water tastes strongly of
+      minerals, but is not unpleasant.  It is extremely cold.
+    words: ['drink']
+- RUB:
+    message: |-
+      Rubbing the electric lamp is not particularly rewarding.  Anyway,
+      nothing exciting happens.
+    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']
+    oldstyle: false
+- FEED:
+    message: 'There is nothing here to eat.'
+    words: ['feed']
+- FILL:
+    message: 'You can''t fill that.'
+    words: ['fill']
+- BLAST:
+    message: *requires_dynamite
+    words: ['blast', 'deton', 'ignit', 'blowu']
+- SCORE:
+    message: *huh_man
+    words: ['score']
+- FEE:
+    message: *not_knowhow
     words: ['fee']
-- SPC_2:
-    message: !!null
+- FIE:
+    message: *not_knowhow
     words: ['fie']
-- SPC_3:
-    message: !!null
+- FOE:
+    message: *not_knowhow
     words: ['foe']
-- SPC_4:
-    message: !!null
+- FOO:
+    message: *not_knowhow
     words: ['foo']
-- SPC_5:
-    message: !!null
+- FUM:
+    message: *not_knowhow
     words: ['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_13:
     message: 'You''re quite welcome.'
     words: ['thank']
@@ -3771,10 +3982,22 @@ specials: !!omap
     message: 'Guess again.'
     words: ['yes']
 - SPC_275:
-    message: '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.'
+    message: |-
+      Open Adventure is an author-approved open-source release of
+      Version 2.5 with, as yet, no gameplay changes.
+      Version 2.5 was essentially the same as Version II; the cave and the
+      hazards therein are unchanged, and top score is still 430 points.
+      There are a few more hints, especially for some of the more obscure
+      puzzles.  There are a few minor bugfixes and cosmetic changes.  You
+      can now save a game and resume it at once (formerly you had to wait a
+      while first), but it now costs you a few points each time you save the
+      game.  Saved games are now stored in much smaller files than before.
     words: ['news']
 - SPC_276:
-    message: '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/'
+    message: |-
+      There is a puff of orange smoke; within it, fiery runes spell out:
+      
+      \tOpen Adventure %V - http://www.catb.org/esr/open-adventure/
     words: ['versi']
 
 # end