{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "workstream": {
      "const": "expansionrx-clean-baseline"
    },
    "source_keys": {
      "type": "array",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "environment": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "python": {
          "type": "string",
          "minLength": 1
        },
        "packages": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "hardware": {
          "type": "string",
          "minLength": 1
        },
        "command": {
          "type": "string",
          "minLength": 1
        },
        "seed_policy": {
          "type": "string",
          "minLength": 1
        }
      },
      "required": [
        "python",
        "packages",
        "hardware",
        "command",
        "seed_policy"
      ]
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "data_audit": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "train_rows": {
          "type": "integer",
          "minimum": 0
        },
        "test_rows": {
          "type": "integer",
          "minimum": 0
        },
        "id_overlap_count": {
          "type": "integer",
          "minimum": 0
        },
        "canonical_overlap_count": {
          "type": "integer",
          "minimum": 0
        },
        "invalid_smiles_ids": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "duplicate_policy": {
          "type": "string",
          "minLength": 1
        },
        "test_label_access_policy": {
          "type": "string",
          "minLength": 1
        }
      },
      "required": [
        "train_rows",
        "test_rows",
        "id_overlap_count",
        "canonical_overlap_count",
        "invalid_smiles_ids",
        "duplicate_policy",
        "test_label_access_policy"
      ]
    },
    "endpoint_results": {
      "type": "array",
      "minItems": 9,
      "maxItems": 9,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "endpoint": {
            "enum": [
              "LogD",
              "KSOL",
              "HLM CLint",
              "MLM CLint",
              "Caco-2 Permeability Papp A>B",
              "Caco-2 Permeability Efflux",
              "MPPB",
              "MBPB",
              "MGMB"
            ]
          },
          "train_n": {
            "type": "integer",
            "minimum": 0
          },
          "test_labeled_n": {
            "type": "integer",
            "minimum": 0
          },
          "mae": {
            "type": "number",
            "minimum": 0
          },
          "rae": {
            "type": [
              "number",
              "null"
            ],
            "minimum": 0
          },
          "median_baseline_mae": {
            "type": "number",
            "minimum": 0
          },
          "transform": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "endpoint",
          "train_n",
          "test_labeled_n",
          "mae",
          "rae",
          "median_baseline_mae",
          "transform"
        ]
      }
    },
    "macro_rae": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0
    },
    "prediction_rows": {
      "type": "integer",
      "minimum": 0
    },
    "reproduction_command": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "workstream",
    "source_keys",
    "environment",
    "limitations",
    "data_audit",
    "endpoint_results",
    "macro_rae",
    "prediction_rows",
    "reproduction_command"
  ]
}
