Defines text comments. Optional. Specifies whether the element can be null. Default: true. Specifies the name. Required. Specifies the property use <required|optional>. Default: required. Identifier pattern that must start with either a capital letter, or must include a '$' followed by a capital letter. Specifies the name. Required. Specifies the name of the referenced type. Required. Specifies the language to which this binding applies. Specifies the "field" identifier. Specifies the "type" qualified identifier. Specifies the "decode" qualified function identifier that accepts input as a string, or as the native JSON type of this property, and returns an output of the specified "type" (or the default type if "type" is unspecified). Specifies the "encode" qualified function identifier that accepts input of the type specified in "type" (or the default type if "type" is unspecified), and returns an output as a string, or as the native JSON type of this property. Specifies the "field" identifier. Specifies language-specific bindings. Specifies a list of type names. Optional. Specifies language-specific bindings. Specifies the regex pattern of property names. Required. Specifies language-specific bindings. Specifies the value range in interval notation: Open (exclusive) interval: (min,max) Closed (inclusive) interval: [min,max] Half-open or half-closed interval: [min,max) The number of digits to the right of the decimal point. If a value is not specified, the scale is unbounded. Specifies language-specific bindings. Specifies the regex pattern. Specifies language-specific bindings. Specifies the minimum inclusive number of occurrence of this element. Default: 1. Specifies the maximum inclusive number of occurrence of this element. Default: unbounded. Specifies language-specific bindings. Specifies language-specific bindings. Specifies language-specific bindings. Specifies the minimum inclusive number of iterations of child elements. Default: 1. Specifies the maximum inclusive number of iterations of child elements. Default: 1. Specifies language-specific bindings. Specifies the name of the type to extend. Optional. Specifies language-specific bindings. Specifies language-specific bindings. Specifies language-specific bindings. Specifies language-specific bindings. Specifies whether the object is abstract. Default: false. Object cannot extend itself.