Function record

Requires a non-null, non-array object. Schemas are specified for keys as a whole and for values as a whole. Empty objects are allowed by default and values for keys not matching the specified key schema are always allowed, since they either just extra data or they're tested by another schema, ex. using an allOf schema.