Currently assertions can be created in any block in an archetype. This complicates parsing
somewhat, and makes archetype less readable than if there were simply one set of assertions
per archetype. This makes an archetype more similar to an object-oriented class definition.
The use of symbolic path definitions in an archetype would allow archetype-level invariants
to be efficiently expressed, without the encumbrance of long path names.