{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "OCx25 candidate catalysts",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "method_summary",
    "models_used",
    "candidates"
  ],
  "properties": {
    "method_summary": {
      "type": "string",
      "minLength": 200
    },
    "models_used": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "loco_pearson_r2",
          "reference"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "loco_pearson_r2": {
            "type": "number"
          },
          "reference": {
            "type": "string",
            "description": "The TfP Attempt, Artifact or Note that documents the model, or a public URL."
          }
        }
      }
    },
    "candidates": {
      "type": "array",
      "minItems": 1,
      "maxItems": 20,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "rank",
          "composition",
          "elements",
          "synthesis_route",
          "reaction",
          "predicted",
          "uncertainty",
          "rationale",
          "falsifiable_prediction",
          "nearest_tested"
        ],
        "properties": {
          "rank": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20
          },
          "composition": {
            "type": "string",
            "pattern": "^[A-Z][a-z]?-(0(\\.[0-9]+)?|1(\\.0+)?)(-[A-Z][a-z]?-(0(\\.[0-9]+)?|1(\\.0+)?))*$",
            "description": "OCx25 notation, atomic fractions summing to 1, e.g. Cu-0.6-Zn-0.4."
          },
          "elements": {
            "type": "array",
            "minItems": 1,
            "maxItems": 4,
            "items": {
              "type": "string"
            }
          },
          "synthesis_route": {
            "enum": [
              "vsp_spark_ablation",
              "uoft_chemical_reduction",
              "either"
            ]
          },
          "reaction": {
            "enum": [
              "HER",
              "CO2RR"
            ]
          },
          "predicted": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "her_voltage_she_v": {
                "type": "number"
              },
              "her_voltage_cell_v": {
                "type": "number"
              },
              "fe_h2": {
                "type": "number"
              },
              "fe_co": {
                "type": "number"
              },
              "fe_ch4": {
                "type": "number"
              },
              "fe_c2h4": {
                "type": "number"
              },
              "fe_liquid": {
                "type": "number"
              },
              "h2_pr": {
                "type": "number"
              },
              "co_pr": {
                "type": "number"
              },
              "liquid_pr": {
                "type": "number"
              }
            },
            "minProperties": 1
          },
          "uncertainty": {
            "type": "string",
            "minLength": 1,
            "description": "An interval or standard deviation for each predicted quantity, and how it was obtained."
          },
          "rationale": {
            "type": "string",
            "minLength": 1
          },
          "falsifiable_prediction": {
            "type": "string",
            "minLength": 1,
            "description": "One sentence a 50 mA/cm2 HER test or a 3.3 V CO2RR test would confirm or refute."
          },
          "nearest_tested": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The closest compositions already in experiments, by sample id or composition."
          },
          "cost_or_availability": {
            "type": "string"
          }
        }
      }
    }
  }
}
