{
  "$schema" : "https://json-schema.org/draft/2019-09/schema",
  "$defs" : {
    "Association" : {
      "type" : "string",
      "enum" : [ "ONE_TO_ONE", "ONE_TO_MANY", "MANY_TO_ONE" ]
    },
    "CascadeType" : {
      "type" : "string",
      "enum" : [ "ALL", "PERSIST", "MERGE", "REMOVE", "REFRESH" ]
    },
    "Entity-1" : {
      "type" : "object",
      "properties" : {
        "tableName" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Entity-2" : {
      "type" : "object",
      "properties" : {
        "association" : {
          "$ref" : "#/$defs/Association"
        },
        "cascadeTypes" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/CascadeType"
          }
        },
        "databaseFieldLength" : {
          "type" : "string"
        },
        "databaseName" : {
          "type" : "string"
        },
        "mappedByFieldName" : {
          "type" : "string"
        },
        "orphanRemoval" : {
          "type" : "boolean"
        }
      },
      "additionalProperties" : false
    },
    "Field" : {
      "type" : "object",
      "properties" : {
        "annotations" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "comment" : {
          "type" : "string"
        },
        "entity" : {
          "$ref" : "#/$defs/Entity-2"
        },
        "modifiers" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Modifier"
          }
        },
        "name" : {
          "type" : "string"
        },
        "type" : {
          "type" : "string"
        }
      },
      "required" : [ "name", "type" ],
      "additionalProperties" : false
    },
    "Modifier" : {
      "type" : "string",
      "enum" : [ "PERSISTENT", "ID", "GENERATED", "NOT_NULLABLE", "UNIQUE", "NOT_UPDATEABLE", "NOT_INSERTABLE", "VERSION" ]
    }
  },
  "type" : "object",
  "properties" : {
    "$schema" : {
      "type" : "string"
    },
    "simpleName" : {
      "type" : "string"
    },
    "namespace" : {
      "type" : "string"
    },
    "comment" : {
      "type" : "string"
    },
    "annotations" : {
      "type" : "array",
      "items" : {
        "type" : "string"
      }
    },
    "isBusinessCaseData" : {
      "type" : "boolean"
    },
    "entity" : {
      "$ref" : "#/$defs/Entity-1"
    },
    "fields" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/Field"
      }
    }
  },
  "required" : [ "simpleName", "namespace" ],
  "additionalProperties" : false
}
