Dimensions objects should be dicts associated with Components
or at least behave exactly like dicts, and serialize like dicts for json and yaml. Main difference is that they have a specific set of keys that can't change. Some setters may do fancy things.
Dicts should be associated with library Components instead of a utils file