The schema used by the database.
The implementation uses the schema as a "VIEW" on top of JSON data. No migrations are required on the client.
Secondary constructor to create a schema with a variable number of tables.
Validates the schema by ensuring there are no duplicate table names and that each table is valid.