### Description Archetype

A catalog-entry-like description. A collection of values that apply again and again. Provides behavior across the collection of all things that correspond to its description. For example, your red pickup is a vehicle; it's a thing with its own serial number (called a vehicle identification number), purchase date, color, and odometer reading. The corresponding catalog-entry-like description is vehicle description; it establishes manufacturer, model number, date of manufacture, and available colors; it also is a good place to locate business-related methods like, "how many of these trucks are in good working order?"

#### Typical Attributes

- type - unique number, code or name for the type of objects described e.g. Power Pick Up
- description - text description of the type of objects described e.g. Long wheelbase, large engine
- itemNumber - analogous to a catalog entry number
- defaultValue - contains default value for an attribute in a corresponding PartyPlaceThing, Role or MomentInterval

#### Typical Methods

Descriptions often include methods like how many are available and calculate total for quantity. Use a plug-in point when it has algorithmically complex behavior and we want the option of plugging in an alternative behavior at times.

- findAvailable - locate a PartyPlaceThing that is available (to play a particular Role in a particular MomentInterval)
- calcQtyAvailable - count the PartyPlaceThings available (to play a particular Role in a particular MomentInterval)
- defaultAlgorithm - some sort of calculation
- invokePlugInElseDefaultAlgorithm - if plugin supplied then invoke it else invoke the defaultAlgorithm