{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://complextrees.com/4D/schemas/parameter.schema.json",
  "title": "Connectedness Atlas parameter record",
  "type": "object",
  "required": [
    "schema",
    "parameter",
    "evidence"
  ],
  "additionalProperties": false,
  "properties": {
    "schema": {
      "const": "connectedness-atlas/parameter/v1"
    },
    "parameter": {
      "type": "object",
      "required": [
        "family",
        "w",
        "rho",
        "alpha",
        "gamma"
      ],
      "additionalProperties": false,
      "properties": {
        "family": {
          "enum": [
            "DD",
            "DO",
            "OO"
          ]
        },
        "w": {
          "type": "number",
          "exclusiveMinimum": 0,
          "exclusiveMaximum": 1
        },
        "rho": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "alpha": {
          "type": "number"
        },
        "gamma": {
          "type": "number"
        }
      },
      "$comment": "Also enforce rho > 2*max(w,1-w). Angles are radians and may be unwrapped. Non-finite JavaScript values are invalid JSON."
    },
    "evidence": {
      "type": "object",
      "required": [
        "kind",
        "description"
      ],
      "additionalProperties": false,
      "properties": {
        "kind": {
          "enum": [
            "exact-family",
            "certified-stability-cell",
            "exact-disconnection-certificate",
            "numerical-exclusion",
            "finite-survival",
            "unresolved"
          ]
        },
        "description": {
          "type": "string"
        },
        "source": {
          "type": "string",
          "format": "uri"
        },
        "reference": {
          "type": "string"
        }
      }
    },
    "label": {
      "type": "string"
    },
    "created": {
      "type": "string",
      "format": "date"
    },
    "author": {
      "type": "string"
    },
    "notes": {
      "type": "string"
    }
  }
}
