-# objects: Each item contains a description for use in the
-# inventory command and one or more messages describing the object
-# in different states. The vocabulary word(s) referring to this
-# object are listed (words). There is also a boolean "treasure"
-# attribute, defaulting to false. 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). An object may also be
-# flagged immovable, meaning it cannot be carried. If a state
-# message is a tuple then the first element is made the name of a
-# #define 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. If the inventory description begins with "*"
-# the object is dungeon furniture that cannot be taken or carried.
+# objects: Objects have attributes as follows...
+# inventory: A description for use in the inventory command.
+# descriptions: Messages describing the object in different states.
+# If a state message is a tuple then the first element
+# is made the name of a #define visible to the code for
+# the associated state, numbered from zero upwards; it
+# is also a state label that can be used in travel-rule
+# 'not' clauses.
+# changes: State-change messages to be emitted whenever the obect
+# *changes* to the (0-origin) state that is the index of the
+# message in this array.
+# words: The vocabulary word(s) referring to this object.
+# treasure: A boolean "treasure" used for point-scoring and pirate
+# snatches, defaulting to false.
+# immovable: An object may also be flagged
+# immovable, meaning it cannot be carried.
+# locations: An object may have one or two start locations (the gate
+# is an example of a two-location object; it can be accessed
+# from above or below).