Associate meta data to fields
Understand and declare abstract types to allow certain fields to be of several types sharing a common base.