+<base-type>
+
+ The type of a key or value in a database column. Either an
+ <atomic-type> or a JSON object with the following members:
+
+ "type": <atomic-type> required
+ "enum": <value> optional
+ "minInteger": <integer> optional, integers only
+ "maxInteger": <integer> optional, integers only
+ "minReal": <real> optional, reals only
+ "maxReal": <real> optional, reals only
+ "minLength": <integer> optional, strings only
+ "maxLength": <integer> optional, strings only
+ "refTable": <id> optional, uuids only
+ "refType": "strong" or "weak" optional, only with "refTable"
+
+ An <atomic-type> by itself is equivalent to a JSON object with a
+ single member "type" whose value is the <atomic-type>.
+
+ "enum" may be specified as a <value> whose type is a set of one
+ or more values specified for the member "type". If "enum" is
+ specified, then the valid values of the <base-type> are limited to
+ those in the <value>.
+
+ "enum" is mutually exclusive with the following constraints.
+
+ If "type" is "integer", then "minInteger" or "maxInteger" or both
+ may also be specified, restricting the valid integer range. If
+ both are specified, then the maxInteger must be greater than or
+ equal to minInteger.
+
+ If "type" is "real", then "minReal" or "maxReal" or both may also
+ be specified, restricting the valid real range. If both are
+ specified, then the maxReal must be greater than or equal to
+ minReal.
+
+ If "type" is "string", then "minLength" and "maxLength" or both
+ may be specified, restricting the valid length of value strings.
+ If both are specified, then maxLength must be greater than or
+ equal to minLength. String length is measured in characters (not
+ bytes or UTF-16 code units).
+
+ If "type" is "uuid", then "refTable", if present, must be the name
+ of a table within this database. If "refTable" is specified, then
+ "refType" may also be specified. If "refTable" is set, the effect
+ depends on "refType":
+
+ - If "refType" is "strong" or if "refType" is omitted, the
+ allowed UUIDs are limited to UUIDs for rows in the named
+ table.
+
+ - If "refType" is "weak", then any UUIDs are allowed, but
+ UUIDs that do not correspond to rows in the named table will
+ be automatically deleted.
+
+ "refTable" constraints are "deferred" constraints: they are
+ enforced only at transaction commit time (see the "transact"
+ request below). The other contraints on <base-type> are
+ "immediate", enforced immediately by each operation.
+