seomoz/askari — pull request #43 by phs (2013-09-30 04:08:35+00:00)
Title: Phs/make schemas cumulative and uniquify type labels

Make schema versions a level of schema definition, just below application. This lets applications inspect their own past structure, which will be useful for migrations.

Relations within a table now form a map (again) instead of a list. The keys are arbitrary strings chosen by the application author; they merely must be unique within the version.

`Type.names` is a function that returns all the `NamedType` labels mentioned within a type (name.) It is used to require such names to be unique within a relation. With the change to relations, this makes it possible to unambiguously talk about a specific typed attribute knowing only its name and the name of the enclosing relation.