    $schema?: string
    type?: string
    title?: string
    description?: string
    default?: any
    format?: string | Object
    enum?: any[]
    definitions?: { [index: string]: jsonschema }

    allOf?: jsonschema[]
    anyOf?: jsonschema[]
    oneOf?: jsonschema[]
    not?: jsonschema[]

    multipleOf?: number
    maximum?: number
    minimum?: number
    exclusiveMaximum?: boolean
    exclusiveMinimum?: boolean

    maxLength?: number
    minLength?: number
    pattern?: string

    additionalItems?: boolean | jsonschema
    items?: jsonschema | jsonschema[]
    maxItems?: number
    minItems?: number
    uniqueItems?: boolean

    maxProperties?: number
    minProperties?: number
    required?: string[]
    additionalProperties?: boolean | jsonschema
    properties?: { [index: string]: jsonschema }
    patternProperties?: { [index: string]: jsonschema }
    dependencies?: { [index: string]: jsonschema }
}
interface jsonschema {
    id?: string