{
  "$defs": {
    "Bytes": {
      "contentEncoding": "base64",
      "type": "string"
    },
    "GrandfatherType": {
      "additionalProperties": false,
      "properties": {
        "family_name": {
          "type": "string"
        }
      },
      "required": [
        "family_name"
      ],
      "type": "object"
    },
    "MapType": {
      "type": "object"
    },
    "TestUser": {
      "additionalProperties": false,
      "properties": {
        "Baz": {
          "foo": [
            "bar",
            "bar1"
          ],
          "hello": "world",
          "type": "string"
        },
        "MapType": {
          "$ref": "#/$defs/MapType"
        },
        "PublicNonExported": {
          "type": "integer"
        },
        "SomeUntaggedBaseProperty": {
          "type": "boolean"
        },
        "TestFlag": {
          "type": "boolean"
        },
        "TestFlagFalse": {
          "default": false,
          "type": "boolean"
        },
        "TestFlagTrue": {
          "default": true,
          "type": "boolean"
        },
        "age": {
          "exclusiveMaximum": 121,
          "exclusiveMinimum": 17,
          "maximum": 120,
          "minimum": 18,
          "type": "integer"
        },
        "anything": true,
        "birth_date": {
          "format": "date-time",
          "type": "string"
        },
        "bool_extra": {
          "isFalse": false,
          "isTrue": true,
          "type": "string"
        },
        "color": {
          "enum": [
            "red",
            "green",
            "blue"
          ],
          "type": "string"
        },
        "email": {
          "format": "email",
          "type": "string"
        },
        "feeling": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            }
          ]
        },
        "friends": {
          "description": "list of IDs, omitted when empty",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "grand": {
          "$ref": "#/$defs/GrandfatherType"
        },
        "id": {
          "type": "integer"
        },
        "mult": {
          "enum": [
            1.0,
            1.5,
            2.0
          ],
          "type": "number"
        },
        "name": {
          "default": "alex",
          "description": "this is a property",
          "examples": [
            "joe",
            "lucy"
          ],
          "maxLength": 20,
          "minLength": 1,
          "pattern": ".*",
          "readOnly": true,
          "title": "the name",
          "type": "string"
        },
        "network_address": {
          "format": "ipv4",
          "type": "string"
        },
        "offsets": {
          "items": {
            "enum": [
              1.570796,
              3.141592,
              6.283185
            ],
            "type": "number"
          },
          "type": "array"
        },
        "options": {
          "type": "object"
        },
        "password": {
          "type": "string",
          "writeOnly": true
        },
        "photo": {
          "contentEncoding": "base64",
          "type": "string"
        },
        "photo2": {
          "$ref": "#/$defs/Bytes"
        },
        "priorities": {
          "items": {
            "enum": [
              -1,
              0,
              1
            ],
            "type": "integer"
          },
          "type": "array"
        },
        "rank": {
          "enum": [
            1,
            2,
            3
          ],
          "type": "integer"
        },
        "raw": true,
        "roles": {
          "items": {
            "enum": [
              "admin",
              "moderator",
              "user"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "some_base_property": {
          "type": "integer"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "uuid": {
          "format": "uuid",
          "type": "string"
        },
        "website": {
          "format": "uri",
          "type": "string"
        }
      },
      "required": [
        "SomeUntaggedBaseProperty",
        "id",
        "name",
        "photo",
        "photo2"
      ],
      "type": "object"
    }
  },
  "$id": "https://github.com/invopop/jsonschema/test-user",
  "$ref": "#/$defs/TestUser",
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}