$id defines a URI for the schema, and the base URI that other URI references within the schema are
$schema keyword is both used as a JSON Schema version identifier and the location of a resource which
is itself a JSON Schema, which describes any schema written for this particular version.
$ref keyword is used to reference a schema, and provides the ability to validate recursive structures
$comment keyword is reserved for comments from schema authors to readers or maintainers of the schema.
Implementations MUST NOT present this string to end users.
title is a short string used to decorate a user interface with information.
description will provide explanation about the purpose of the instance and is used to decorate a use interface with
default is used to supply a default JSON value associated with a particular schema. It is RECOMMENDED that a
default value be valid against the associated schema.
readOnly indicates that the value of the instance is managed exclusively by the owning authority, and attempts by
applications to modify the value of this property are expected to be ignored or rejected by that owning authority.
examples keyword can be used to provide sample JSON values associated with a particular schema, for the purpose of
illustrating usage. It is RECOMMENDED that these values be valid against the associated schema.
minLength MUST be a non-negative integer. A string instance is valid against this keyword if its length is greater
than, or equal to, the value of this keyword. The length of a string instance is defined as the number of its
characters as defined by RFC 7159.
items MUST be a valid JSON Schema. This keyword determines how child instances validate for arrays, and does not
directly validate the immediate instance itself. Validation succeeds if all elements in the array successfully
validate against that schema.
requiredarray of strings
required members MUST be unique. An object instance is valid against this keyword if every item in the array is the
name of a property in the instance. Omitting this keyword has the same behavior as an empty array.
properties MUST have a valid JSON Schema for each value. This keyword determines how child instances validate for
objects, and does not directly validate the immediate instance itself. Validation succeeds if, for each name that
appears in both the instance and as a name within this keyword's value, the child instance for that name
successfully validates against the corresponding schema. Omitting this keyword has the same behavior as an empty
type members MUST be unique. An instance validates if and only if the instance is in any of the sets listed for
allOf MUST be a non-empty array. Each item of the array MUST be a valid JSON Schema. An instance validates
successfully against this keyword if it validates successfully against all schemas defined by this keyword's value.