ConstYes or no; t.boolean({ default: false }) may be left out.
Membership: t.enum("low", "high").
An integer; t.integer({ default: 3 }) may be left out.
Any JSON value (shape {}), with words about it if you like: t.json({ description: "each input by name" }).
A list: t.list(t.string(), { description: "one per line" }).
An lm15 part of this type (image, document, …); its value is the part's data.
The shape or null (kernel §1 nullable form).
A number; t.number({ default: 0.5 }) may be left out.
An object with these properties, all required: t.object({ id: t.integer() }, { description }).
A module's field whose values may have no JSON form (a class instance, a
buffer, a data frame): never checked, written in the log as a
description. It cannot cross a boundary that needs data (a server, a
conversation store). t.opaque<Buffer>().
The shape or null; a caller may leave it out, and it is then null.
A map from text keys to values: t.record(t.integer()).
Text: t.string(); t.string({ default: "kind" }) may be left out (and is typed so).
The shape, with the value an input takes when a caller leaves it out: t.withDefault(t.string(), "kind").
Builders for shapes (lmcc's, plus a map,
optional,jsonandopaque). Each takes extra JSON Schema keys, which add to the shape it makes.