{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://json.schemastore.org/popxf-corr-1.0.json",
  "definitions": {
    "observable_names": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string",
        "minLength": 1
      },
      "uniqueItems": true
    }
  },
  "type": "object",
  "properties": {
    "$schema": {
      "type": "string",
      "const": "https://json.schemastore.org/popxf-corr-1.0.json"
    }
  },
  "minProperties": 2,
  "additionalProperties": {
    "type": "object",
    "properties": {
      "row_names": { "$ref": "#/definitions/observable_names" },
      "col_names": { "$ref": "#/definitions/observable_names" },
      "correlations": {
        "type": "object",
        "additionalProperties": {
          "oneOf": [
            {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "array",
                "minItems": 1,
                "items": { "type": "number" }
              }
            },
            {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "array",
                    "minItems": 1,
                    "items": { "type": "number" }
                  }
                }
              }
            }
          ]
        }
      }
    },
    "required": ["row_names", "col_names", "correlations"],
    "additionalProperties": false
  },
  "required": ["$schema"]
}
