{
  "schema": {
    "definitions": {
      "int": {
        "type": "number",
        "minimum": 0,
        "maximum": 10
      },
      "string": {
        "type": "string",
        "minLength": 0
      },
      "valueItem": {
        "type": "object",
        "properties": { "value": { "$ref": "#/definitions/int" } }
      },
      "valueItemArray": {
        "type": "array",
        "items": { "$ref": "#/definitions/valueItemArray" }
      },
      "dtoArray": {
        "type": "array",
        "items": { "$ref": "#/definitions/staffLanguageLevelDto" }
      },
      "staffLanguageLevelDto": {
        "type": "object",
        "properties": {
          "id": { "$ref": "#/definitions/int" },
          "staffId": { "allOf" : [
            { "$ref": "#/definitions/int" },
            { "maximum": 5,
              "title": "staffId (overriden maximum)" }
          ] },
          "languageId": { "allOf" : [
            { "$ref": "#/definitions/valueItem" },
            { "title": "languageId (object with custom title)" }
          ] },
          "languageLevelId": { "$ref": "#/definitions/int" },
          "languageName2": { "allOf" : [
            { "$ref": "#/definitions/string" },
            { "default": "ole",
              "maxLength": 3,
              "title": "languageName2 (custom default & maxLength)" }
          ] },
          "languageLevelName": { "$ref": "#/definitions/dtoArray" }
        }
      }
    },
    "properties": {
      "staffLanguageLevelDto": { "$ref": "#/definitions/staffLanguageLevelDto" }
    }
  }
}
