{
  "$defs": {
    "Bytes": {
      "contentEncoding": "base64",
      "type": "string"
    },
    "GrandfatherType": {
      "additionalProperties": false,
      "properties": {
        "family_name": {
          "type": "string"
        }
      },
      "required": [
        "family_name"
      ],
      "type": "object"
    },
    "MapType": {
      "type": "object"
    }
  },
  "$id": "https://github.com/invopop/jsonschema/test-user",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "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": [
    "id",
    "some_base_property",
    "grand",
    "SomeUntaggedBaseProperty",
    "PublicNonExported",
    "MapType",
    "name",
    "password",
    "TestFlag",
    "photo",
    "photo2",
    "age",
    "email",
    "uuid",
    "Baz",
    "color",
    "roles",
    "raw"
  ],
  "type": "object"
}