+# locations: They have attributes as follows...
+#
+# long: Long description, always shown on first encounter.
+# short: Short description. If none, use long description.
+# conditions: A dictionary of attributes
+# LIT Light
+# OILY If FLUID flag is on: true for oil, false for water
+# FLUID Liquid asset
+# NOARRR Pirate doesn't go here unless following player
+# NOBACK Cannot use "back" to move away
+# HCAVE Trying to get into cave
+# HBIRD Trying to catch bird
+# HSNAKE Trying to deal with snake
+# HMAZE Lost in maze
+# HDARK Pondering dark room
+# HWITT At Witt's End
+# HCLIFF Cliff with urn
+# HWOODS Lost in forest
+# HOGRE Trying to deal with ogre
+# HJADE Found all treasures except jade
+# hints: A list of YAML references to hints that may be available at
+# this location. (This is why locations has to follow hints.)
+# sound: Label for a location sound.
+# loud: If true, object sounds are drowned out at this location.
+#
+# All attributes are optional except the long description. Order of
+# locations is not significant.
+#
+# arbitrary_messages: These are arguments to rspeak(). Some spans of
+# these messages need to be kept adjacent and ordered (for now).
+# To see which, grep for rspeak() calls containing expressions with
+# arithmetic. Eventually, these will be pulled out into more appropriate
+# data structures. Then ordering can be dropped, and gaps removed.