In the meta data schema each name is unique and can refer to a section (a table to group values together) a concrete value (a multidimensional array of a basic type), an abstract type (a type used to classify other types), a dimension of a multidimensional array of a concrete value, or a reference to a section. Section are nested and build a tree, and concrete types are defined inside a section. This way the model is equivalent to the relational model where sections are tables, and concrete types columns. sections can have references to other sections either through their nesting or through explicit references.
We did strive to keep the metadata independent from the actual storage format, it should be a conceptual model, and not bound to any specific storage method (values can for example be stored in a relational database), but storage formats are important, and limits or constraints of them do influence how to best represent things.
Ignoring these constraints completely can introduce large inefficiencies or make the mapping between the abstract model and format complex.
We choose to support json and HDF5 as possible storage formats for data using our metadata representation.
For them the strict nesting of the sections ensures that the serialization produces documents that look natural and can be interpreted easily by people.
There is ongoing work to support also CIF as serialization format.