This may seem complicated at first, but it allows the table declarations in the second part to be much more concise. Generally the name and constraints are relatively straightforward, but the type can become quite complex because that's where the nesting occurs. To make it a bit easier for human readers to distinguish what's what, keywords that are specific to the schema language syntax are capitalized, while names and values are usually written in mixed or lower case. There may also be comments in the schema file. This feature can be used to add notations for humans to read, or to prevent the computer from trying to process features that are not implemented yet.
Simple types String values consist of words, or more precisely, a sequence of text characters.
If the string contains any spaces, carriage returns, or punctuation other than underscores, it must be enclosed in single quotes, 'like this'. Using the quotes never hurts, so when in doubt, put them in. A Record type is simply a group of subfields which are grouped together because they have some logical association with each other. For example, there are many places in the schema that refer to the location of a fragment of DNA in the beta-like globin gene cluster. Here all the fields between the parentheses are part of region 's type.