{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/mlos-config-mlos-jsonc-mlos-json5-mlos-json/_shared/latest--environment-schema.json",
  "title": "mlos_bench Environment config",
  "description": "config for an mlos_bench Environment - this is the top level schema that should be used to validate an environment config",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/microsoft/MLOS/main/mlos_bench/mlos_bench/config/schemas/environments/environment-schema.json",
    "sourceSha256": "6589b1c6fee7d261bd222a27f8df46a3c13f9e87caa1363d0cdc517a749d7598"
  },
  "type": "object",
  "allOf": [
    {
      "$comment": "Some properties that we only accept for the top level environment config object.",
      "properties": {
        "$schema": {
          "description": "The schema to use for validating an environment config (accepts both URLs and local paths).",
          "type": "string",
          "$comment": "This is optional, but if provided, should match the name of this file.  However, we don't expect it to be included in nested configs, so it isn't present in the base config schema.",
          "pattern": "/schemas/environments/environment-schema.json$"
        },
        "description": {
          "description": "Optional description of the config.",
          "type": "string"
        }
      }
    },
    {
      "oneOf": [
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/mlos-config-mlos-jsonc-mlos-json5-mlos-json/_shared/latest--leaf-environment-subschemas.json"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/mlos-config-mlos-jsonc-mlos-json5-mlos-json/_shared/latest--composite-env-subschema.json"
        }
      ]
    }
  ],
  "unevaluatedProperties": false
}
