This is all changing, and this info isn't correct. It will be updated once the code is done.
An article of Apparel may occupy one or more ClothingSlots. This prevents a character from wearing a dozen coats at the same time, for example. A shirt would occupy ClothingSlot.TORSO and a pair of pants would occupy ClothingSlot.LEGS. A dress would occupy both ClothingSlot.TORSO and ClothingSlot.LEGS. The ClothingSlots occupied by an article of clothing are baked into the GenericApparel subclasses, but you may derive your own subclasses to define new types of Apparel, or override the default ClothingSlots in your object defaults JS file.
When a Person wears a particular article of Apparel, any currently worn articles that occupy the same ClothingSlots are removed. This prevents the player from equipping, say, 10 pairs of underpants at the same time.
Certain ClothingSlots can cover other ClothingSlots, concealing them. This allows a Person to, for example, hide some racy underpants under their normal clothes, or a whole racy outfit under a long coat. The details of what covers what and how are below.
In general, you probably needn't ever worry about ClothingSlots. If you just define your specific articles of Apparel using the various Apparel subclasses, all of the ClothingSlot magic will be taken care of for you well, magically.
ClothingSlot is an enumeration that describes what “slots” an article of Apparel occupies on a Person when worn. Only one article of Apparel may occupy a particular ClothingSlot.
Boxers, briefs, panties, etc.
Bras and such; T-shirts should use TORSO.
Socks and hosiery.
Shirts and tops.
Pants, skirts, and bottoms; Socks and hosiery should use UNDERLEGS
Shoes. Socks and hosiery should use UNDERLEGS.
Coats and shawls.
Gloves.
Hats and helmets.
Earrings. Something like earmuffs probably should use HEAD.
Necklaces and ties.
Bracelets, watches.
Rings.