{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/rattler-build/latest.json",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json",
    "sourceSha256": "97154dcfaa8c2907ceaea7ec880b9b4af5c15e5b05bed57b646b7d8d3f557a4c",
    "fileMatch": [
      "recipe.yaml",
      "recipe.yml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "$defs": {
    "About": {
      "type": "object",
      "properties": {
        "homepage": {
          "anyOf": [
            {
              "format": "uri",
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Url of the homepage of the package.",
          "title": "Homepage"
        },
        "repository": {
          "anyOf": [
            {
              "format": "uri",
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Url that points to where the source code is hosted e.g. (github.com)",
          "title": "Repository"
        },
        "documentation": {
          "anyOf": [
            {
              "format": "uri",
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Url that points to where the documentation is hosted.",
          "title": "Documentation"
        },
        "license": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "An license in SPDX format.",
          "title": "License"
        },
        "license_file": {
          "anyOf": [
            {
              "pattern": "^[^\\\\]+$",
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "pattern": "^[^\\\\]+$",
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Paths to the license files of this package.",
          "title": "License File"
        },
        "license_family": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The license family (deprecated, but still used in some recipes).",
          "title": "License Family"
        },
        "summary": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A short description of the package.",
          "title": "Summary"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Extended description of the package.",
          "title": "Description"
        },
        "prelink_message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Prelink Message"
        }
      },
      "title": "About",
      "additionalProperties": false
    },
    "AttestationConfig": {
      "type": "object",
      "properties": {
        "bundle_url": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "URL to download the attestation bundle from (e.g., .sigstore.json file). Auto-derived for PyPI sources if not specified.",
          "title": "Bundle Url"
        },
        "publishers": {
          "default": [],
          "description": "Publisher identities to verify (e.g., 'github:owner/repo'). All specified publishers must match.",
          "items": {
            "minLength": 1,
            "type": "string"
          },
          "title": "Publishers",
          "type": "array"
        }
      },
      "title": "AttestationConfig",
      "additionalProperties": false
    },
    "BaseGitSource": {
      "type": "object",
      "properties": {
        "patches": {
          "anyOf": [
            {
              "pattern": "^[^\\\\]+$",
              "type": "string"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "pattern": "^[^\\\\]+$",
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement_Annotated_str__StringConstraints__"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "A list of patches to apply after fetching the source",
          "title": "Patches"
        },
        "target_directory": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The location in the working directory to place the source",
          "title": "Target Directory"
        },
        "git": {
          "anyOf": [
            {
              "pattern": "((git|ssh|http(s)?)|(git@[\\w\\.]+))(:(\\/\\/)?)([\\w\\.@:\\/\\\\-~]+)",
              "type": "string"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            }
          ],
          "description": "The url that points to the git repository.",
          "title": "Git"
        },
        "depth": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A value to use when shallow cloning the repository.",
          "title": "Depth"
        },
        "lfs": {
          "default": false,
          "description": "Should we LFS files be checked out as well",
          "title": "Lfs",
          "type": "boolean"
        },
        "submodules": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether to recursively initialize and update submodules.",
          "title": "Submodules"
        },
        "expected_commit": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "An expected commit hash to verify after checkout.",
          "title": "Expected Commit"
        }
      },
      "required": [
        "git"
      ],
      "title": "BaseGitSource",
      "additionalProperties": false
    },
    "Build": {
      "type": "object",
      "properties": {
        "number": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Build number to version current build in addition to package version",
          "title": "Number"
        },
        "string": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The build string to identify build variant. This is usually omitted (can use `${{ hash }}`) variable here)",
          "title": "String"
        },
        "skip": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "boolean"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "boolean"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of conditions under which to skip the build of the package. If any of these condition returns true the build is skipped.",
          "title": "Skip"
        },
        "noarch": {
          "anyOf": [
            {
              "enum": [
                "generic",
                "python"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Can be either 'generic' or 'python'. A noarch 'python' package compiles .pyc files upon installation.",
          "title": "Noarch"
        },
        "script": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/FileScript"
            },
            {
              "$ref": "#/$defs/ContentScript"
            },
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The script to execute to invoke the build. If the string is a single line and ends with `.sh` or `.bat`, then we interpret it as a file.",
          "title": "Script"
        },
        "merge_build_and_host_envs": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Merge the build and host environments (used in many R packages on Windows)",
          "title": "Merge Build And Host Envs"
        },
        "always_include_files": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Files to be included even if they are present in the PREFIX before building.",
          "title": "Always Include Files"
        },
        "always_copy_files": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/GlobDict"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "type": "string"
                        },
                        {
                          "$ref": "#/$defs/IfStatement"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  {
                    "$ref": "#/$defs/GlobDict"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Do not soft- or hard-link these files but instead always copy them into the environment",
          "title": "Always Copy Files"
        },
        "variant": {
          "anyOf": [
            {
              "$ref": "#/$defs/Variant"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Options that influence how the different variants are computed."
        },
        "python": {
          "anyOf": [
            {
              "$ref": "#/$defs/Python"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Python specific build configuration"
        },
        "dynamic_linking": {
          "anyOf": [
            {
              "$ref": "#/$defs/DynamicLinking"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Configuration to post-process dynamically linked libraries and executables"
        },
        "prefix_detection": {
          "anyOf": [
            {
              "$ref": "#/$defs/PrefixDetection"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Options that influence how the prefix replacement is done."
        },
        "files": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/GlobDict"
            }
          ],
          "default": null,
          "description": "Glob patterns to include or exclude files from the package.",
          "title": "Files"
        },
        "post_process": {
          "anyOf": [
            {
              "$ref": "#/$defs/PostProcess"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/PostProcess"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Post-processing operations using regex replacements on files.",
          "title": "Post Process"
        }
      },
      "title": "Build",
      "additionalProperties": false
    },
    "Cache": {
      "type": "object",
      "properties": {
        "source": {
          "anyOf": [
            {
              "$ref": "#/$defs/UrlSource"
            },
            {
              "$ref": "#/$defs/GitRev"
            },
            {
              "$ref": "#/$defs/GitTag"
            },
            {
              "$ref": "#/$defs/GitBranch"
            },
            {
              "$ref": "#/$defs/BaseGitSource"
            },
            {
              "$ref": "#/$defs/LocalSource"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/UrlSource"
                  },
                  {
                    "$ref": "#/$defs/GitRev"
                  },
                  {
                    "$ref": "#/$defs/GitTag"
                  },
                  {
                    "$ref": "#/$defs/GitBranch"
                  },
                  {
                    "$ref": "#/$defs/BaseGitSource"
                  },
                  {
                    "$ref": "#/$defs/LocalSource"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The source items to be downloaded and used for the cache build and subsequent outputs.",
          "title": "Source"
        },
        "requirements": {
          "anyOf": [
            {
              "$ref": "#/$defs/Requirements"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The dependencies needed at cache-build time."
        },
        "build": {
          "anyOf": [
            {
              "$ref": "#/$defs/Build"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Describes how the package should be build."
        }
      },
      "title": "Cache",
      "additionalProperties": false
    },
    "CacheInherit": {
      "type": "object",
      "properties": {
        "from": {
          "description": "Name of the staging cache to inherit from.",
          "minLength": 1,
          "title": "From",
          "type": "string"
        },
        "run_exports": {
          "default": true,
          "description": "Whether to inherit run_exports from the staging cache.",
          "title": "Run Exports",
          "type": "boolean"
        }
      },
      "required": [
        "from"
      ],
      "title": "CacheInherit",
      "additionalProperties": false
    },
    "ComplexPackage": {
      "type": "object",
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "The recipe name, this is only used to identify the name of the recipe.",
          "title": "Name"
        },
        "version": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The version of each output, this can be overwritten per output",
          "title": "Version"
        }
      },
      "required": [
        "name"
      ],
      "title": "ComplexPackage",
      "additionalProperties": false
    },
    "ComplexRecipe": {
      "type": "object",
      "properties": {
        "schema_version": {
          "default": 1,
          "description": "The version of the YAML schema for a recipe. If the version is omitted it is assumed to be 1.",
          "maximum": 1,
          "minimum": 1,
          "title": "Schema Version",
          "type": "integer"
        },
        "context": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Defines arbitrary key-value pairs for Jinja interpolation",
          "title": "Context"
        },
        "source": {
          "anyOf": [
            {
              "$ref": "#/$defs/UrlSource"
            },
            {
              "$ref": "#/$defs/GitRev"
            },
            {
              "$ref": "#/$defs/GitTag"
            },
            {
              "$ref": "#/$defs/GitBranch"
            },
            {
              "$ref": "#/$defs/BaseGitSource"
            },
            {
              "$ref": "#/$defs/LocalSource"
            },
            {
              "$ref": "#/$defs/IfStatement_Union_UrlSource__GitRev__GitTag__GitBranch__BaseGitSource__LocalSource__"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/UrlSource"
                  },
                  {
                    "$ref": "#/$defs/GitRev"
                  },
                  {
                    "$ref": "#/$defs/GitTag"
                  },
                  {
                    "$ref": "#/$defs/GitBranch"
                  },
                  {
                    "$ref": "#/$defs/BaseGitSource"
                  },
                  {
                    "$ref": "#/$defs/LocalSource"
                  },
                  {
                    "$ref": "#/$defs/IfStatement_Union_UrlSource__GitRev__GitTag__GitBranch__BaseGitSource__LocalSource__"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The source items to be downloaded and used for the build.",
          "title": "Source"
        },
        "build": {
          "anyOf": [
            {
              "$ref": "#/$defs/Build"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Describes how the package should be build."
        },
        "about": {
          "anyOf": [
            {
              "$ref": "#/$defs/About"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A human readable description of the package information"
        },
        "extra": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "An set of arbitrary values that are included in the package manifest",
          "title": "Extra"
        },
        "recipe": {
          "anyOf": [
            {
              "$ref": "#/$defs/ComplexPackage"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The package version."
        },
        "cache": {
          "anyOf": [
            {
              "$ref": "#/$defs/Cache"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "deprecated": true,
          "description": "The cache build that can be used as a common build step for all output."
        },
        "outputs": {
          "anyOf": [
            {
              "$ref": "#/$defs/Output"
            },
            {
              "$ref": "#/$defs/StagingOutput"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Output"
                  },
                  {
                    "$ref": "#/$defs/StagingOutput"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "description": "A list of outputs that are generated for this recipe.",
          "title": "Outputs"
        },
        "tests": {
          "anyOf": [
            {
              "$ref": "#/$defs/ScriptTestElement"
            },
            {
              "$ref": "#/$defs/PythonTestElement"
            },
            {
              "$ref": "#/$defs/PerlTestElement"
            },
            {
              "$ref": "#/$defs/RTestElement"
            },
            {
              "$ref": "#/$defs/RubyTestElement"
            },
            {
              "$ref": "#/$defs/DownstreamTestElement"
            },
            {
              "$ref": "#/$defs/PackageContentTest"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ScriptTestElement"
                  },
                  {
                    "$ref": "#/$defs/PythonTestElement"
                  },
                  {
                    "$ref": "#/$defs/PerlTestElement"
                  },
                  {
                    "$ref": "#/$defs/RTestElement"
                  },
                  {
                    "$ref": "#/$defs/RubyTestElement"
                  },
                  {
                    "$ref": "#/$defs/DownstreamTestElement"
                  },
                  {
                    "$ref": "#/$defs/PackageContentTest"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Top-level tests that are inherited by outputs",
          "title": "Tests"
        }
      },
      "required": [
        "outputs"
      ],
      "title": "ComplexRecipe",
      "additionalProperties": false
    },
    "ContentScript": {
      "type": "object",
      "properties": {
        "interpreter": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The interpreter to use for the script.\n\nDefaults to `bash` on unix and `cmd.exe` on Windows.",
          "title": "Interpreter"
        },
        "env": {
          "type": "object",
          "default": {},
          "description": "the script environment.\n\nYou can use Jinja to pass through environments variables with the `env` object (e.g. `${{ env.get(\"MYVAR\") }}`)",
          "title": "Env",
          "additionalProperties": {
            "type": "string"
          }
        },
        "secrets": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Secrets that are set as environment variables but never shown in the logs or the environment.",
          "title": "Secrets"
        },
        "cwd": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The working directory to use when executing the script.",
          "title": "Cwd"
        },
        "content": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "description": "A string or list of strings that is the scripts contents",
          "title": "Content"
        }
      },
      "required": [
        "content"
      ],
      "title": "ContentScript",
      "additionalProperties": false
    },
    "DownstreamTestElement": {
      "type": "object",
      "properties": {
        "downstream": {
          "description": "Install the package and use the output of this package to test if the tests in the downstream package still succeed.",
          "title": "Downstream",
          "type": "string"
        }
      },
      "required": [
        "downstream"
      ],
      "title": "DownstreamTestElement",
      "additionalProperties": false
    },
    "DynamicLinking": {
      "type": "object",
      "properties": {
        "rpaths": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [
            "lib/"
          ],
          "description": "linux only, list of rpaths (was rpath)",
          "title": "Rpaths"
        },
        "binary_relocation": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            },
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/GlobDict"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "type": "string"
                        },
                        {
                          "$ref": "#/$defs/IfStatement"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  {
                    "$ref": "#/$defs/GlobDict"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": true,
          "description": "Whether to relocate binaries or not. If this is a list of paths then only the listed paths are relocated",
          "title": "Binary Relocation"
        },
        "missing_dso_allowlist": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/GlobDict"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "type": "string"
                        },
                        {
                          "$ref": "#/$defs/IfStatement"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  {
                    "$ref": "#/$defs/GlobDict"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Allow linking against libraries that are not in the run requirements",
          "title": "Missing Dso Allowlist"
        },
        "rpath_allowlist": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/GlobDict"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "type": "string"
                        },
                        {
                          "$ref": "#/$defs/IfStatement"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  {
                    "$ref": "#/$defs/GlobDict"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Allow runpath/rpath to point to these locations outside of the environment",
          "title": "Rpath Allowlist"
        },
        "overdepending_behavior": {
          "default": "error",
          "description": "What to do when detecting overdepending. Overdepending means that a requirement a run requirement is specified but none of the artifacts from the build link against any of the shared libraries of the requirement.",
          "enum": [
            "ignore",
            "error"
          ],
          "title": "Overdepending Behavior",
          "type": "string"
        },
        "overlinking_behavior": {
          "default": "error",
          "description": "What to do when detecting overdepending. Overlinking occurs when an artifact links against a library that was not specified in the run requirements.",
          "enum": [
            "ignore",
            "error"
          ],
          "title": "Overlinking Behavior",
          "type": "string"
        }
      },
      "title": "DynamicLinking",
      "additionalProperties": false
    },
    "FileExistenceCheck": {
      "type": "object",
      "properties": {
        "exists": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "Files or glob patterns that must exist anywhere inside the package.",
          "title": "Exists"
        },
        "not_exists": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "Files or glob patterns that must NOT exist anywhere inside the package.",
          "title": "Not Exists"
        }
      },
      "title": "FileExistenceCheck",
      "additionalProperties": false
    },
    "FileScript": {
      "type": "object",
      "properties": {
        "interpreter": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The interpreter to use for the script.\n\nDefaults to `bash` on unix and `cmd.exe` on Windows.",
          "title": "Interpreter"
        },
        "env": {
          "type": "object",
          "default": {},
          "description": "the script environment.\n\nYou can use Jinja to pass through environments variables with the `env` object (e.g. `${{ env.get(\"MYVAR\") }}`)",
          "title": "Env",
          "additionalProperties": {
            "type": "string"
          }
        },
        "secrets": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Secrets that are set as environment variables but never shown in the logs or the environment.",
          "title": "Secrets"
        },
        "cwd": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The working directory to use when executing the script.",
          "title": "Cwd"
        },
        "file": {
          "anyOf": [
            {
              "pattern": "^[^\\\\]+$",
              "type": "string"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            }
          ],
          "description": "The file to use as the script. Automatically adds the `bat` or `sh` to the filename on Windows or Unix respectively (if no file extension is given).",
          "title": "File"
        }
      },
      "required": [
        "file"
      ],
      "title": "FileScript",
      "additionalProperties": false
    },
    "ForceFileType": {
      "type": "object",
      "properties": {
        "text": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/GlobDict"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "type": "string"
                        },
                        {
                          "$ref": "#/$defs/IfStatement"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  {
                    "$ref": "#/$defs/GlobDict"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "force TEXT file type",
          "title": "Text"
        },
        "binary": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/GlobDict"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "type": "string"
                        },
                        {
                          "$ref": "#/$defs/IfStatement"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  {
                    "$ref": "#/$defs/GlobDict"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "force BINARY file type",
          "title": "Binary"
        }
      },
      "title": "ForceFileType",
      "additionalProperties": false
    },
    "GitBranch": {
      "type": "object",
      "properties": {
        "patches": {
          "anyOf": [
            {
              "pattern": "^[^\\\\]+$",
              "type": "string"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "pattern": "^[^\\\\]+$",
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement_Annotated_str__StringConstraints__"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "A list of patches to apply after fetching the source",
          "title": "Patches"
        },
        "target_directory": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The location in the working directory to place the source",
          "title": "Target Directory"
        },
        "git": {
          "anyOf": [
            {
              "pattern": "((git|ssh|http(s)?)|(git@[\\w\\.]+))(:(\\/\\/)?)([\\w\\.@:\\/\\\\-~]+)",
              "type": "string"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            }
          ],
          "description": "The url that points to the git repository.",
          "title": "Git"
        },
        "depth": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A value to use when shallow cloning the repository.",
          "title": "Depth"
        },
        "lfs": {
          "default": false,
          "description": "Should we LFS files be checked out as well",
          "title": "Lfs",
          "type": "boolean"
        },
        "submodules": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether to recursively initialize and update submodules.",
          "title": "Submodules"
        },
        "expected_commit": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "An expected commit hash to verify after checkout.",
          "title": "Expected Commit"
        },
        "branch": {
          "description": "Branch to check out",
          "minLength": 1,
          "title": "Branch",
          "type": "string"
        }
      },
      "required": [
        "git",
        "branch"
      ],
      "title": "GitBranch",
      "additionalProperties": false
    },
    "GitRev": {
      "type": "object",
      "properties": {
        "patches": {
          "anyOf": [
            {
              "pattern": "^[^\\\\]+$",
              "type": "string"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "pattern": "^[^\\\\]+$",
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement_Annotated_str__StringConstraints__"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "A list of patches to apply after fetching the source",
          "title": "Patches"
        },
        "target_directory": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The location in the working directory to place the source",
          "title": "Target Directory"
        },
        "git": {
          "anyOf": [
            {
              "pattern": "((git|ssh|http(s)?)|(git@[\\w\\.]+))(:(\\/\\/)?)([\\w\\.@:\\/\\\\-~]+)",
              "type": "string"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            }
          ],
          "description": "The url that points to the git repository.",
          "title": "Git"
        },
        "depth": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A value to use when shallow cloning the repository.",
          "title": "Depth"
        },
        "lfs": {
          "default": false,
          "description": "Should we LFS files be checked out as well",
          "title": "Lfs",
          "type": "boolean"
        },
        "submodules": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether to recursively initialize and update submodules.",
          "title": "Submodules"
        },
        "expected_commit": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "An expected commit hash to verify after checkout.",
          "title": "Expected Commit"
        },
        "rev": {
          "description": "Revision to checkout to (hash or ref)",
          "minLength": 1,
          "title": "Rev",
          "type": "string"
        }
      },
      "required": [
        "git",
        "rev"
      ],
      "title": "GitRev",
      "additionalProperties": false
    },
    "GitTag": {
      "type": "object",
      "properties": {
        "patches": {
          "anyOf": [
            {
              "pattern": "^[^\\\\]+$",
              "type": "string"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "pattern": "^[^\\\\]+$",
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement_Annotated_str__StringConstraints__"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "A list of patches to apply after fetching the source",
          "title": "Patches"
        },
        "target_directory": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The location in the working directory to place the source",
          "title": "Target Directory"
        },
        "git": {
          "anyOf": [
            {
              "pattern": "((git|ssh|http(s)?)|(git@[\\w\\.]+))(:(\\/\\/)?)([\\w\\.@:\\/\\\\-~]+)",
              "type": "string"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            }
          ],
          "description": "The url that points to the git repository.",
          "title": "Git"
        },
        "depth": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A value to use when shallow cloning the repository.",
          "title": "Depth"
        },
        "lfs": {
          "default": false,
          "description": "Should we LFS files be checked out as well",
          "title": "Lfs",
          "type": "boolean"
        },
        "submodules": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether to recursively initialize and update submodules.",
          "title": "Submodules"
        },
        "expected_commit": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "An expected commit hash to verify after checkout.",
          "title": "Expected Commit"
        },
        "tag": {
          "description": "Tag to checkout",
          "minLength": 1,
          "title": "Tag",
          "type": "string"
        }
      },
      "required": [
        "git",
        "tag"
      ],
      "title": "GitTag",
      "additionalProperties": false
    },
    "GlobDict": {
      "type": "object",
      "properties": {
        "include": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Glob patterns to include",
          "title": "Include"
        },
        "exclude": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Glob patterns to exclude",
          "title": "Exclude"
        }
      },
      "title": "GlobDict",
      "additionalProperties": false
    },
    "IfStatement": {
      "type": "object",
      "properties": {
        "if": {
          "title": "If",
          "type": "string"
        },
        "then": {
          "anyOf": [
            {},
            {
              "items": {},
              "type": "array"
            }
          ],
          "title": "Then"
        },
        "else": {
          "anyOf": [
            {},
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Else"
        }
      },
      "required": [
        "if",
        "then"
      ],
      "title": "IfStatement",
      "additionalProperties": false
    },
    "IfStatement_Annotated_str__StringConstraints__": {
      "type": "object",
      "properties": {
        "if": {
          "title": "If",
          "type": "string"
        },
        "then": {
          "anyOf": [
            {
              "pattern": "^[^\\\\]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[^\\\\]+$",
                "type": "string"
              },
              "type": "array"
            }
          ],
          "title": "Then"
        },
        "else": {
          "anyOf": [
            {
              "pattern": "^[^\\\\]+$",
              "type": "string"
            },
            {
              "items": {
                "pattern": "^[^\\\\]+$",
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Else"
        }
      },
      "required": [
        "if",
        "then"
      ],
      "title": "IfStatement[Annotated[str, StringConstraints]]",
      "additionalProperties": false
    },
    "IfStatement_Union_ScriptTestElement__PythonTestElement__PerlTestElement__RTestElement__RubyTestElement__DownstreamTestElement__PackageContentTest__": {
      "type": "object",
      "properties": {
        "if": {
          "title": "If",
          "type": "string"
        },
        "then": {
          "anyOf": [
            {
              "$ref": "#/$defs/ScriptTestElement"
            },
            {
              "$ref": "#/$defs/PythonTestElement"
            },
            {
              "$ref": "#/$defs/PerlTestElement"
            },
            {
              "$ref": "#/$defs/RTestElement"
            },
            {
              "$ref": "#/$defs/RubyTestElement"
            },
            {
              "$ref": "#/$defs/DownstreamTestElement"
            },
            {
              "$ref": "#/$defs/PackageContentTest"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ScriptTestElement"
                  },
                  {
                    "$ref": "#/$defs/PythonTestElement"
                  },
                  {
                    "$ref": "#/$defs/PerlTestElement"
                  },
                  {
                    "$ref": "#/$defs/RTestElement"
                  },
                  {
                    "$ref": "#/$defs/RubyTestElement"
                  },
                  {
                    "$ref": "#/$defs/DownstreamTestElement"
                  },
                  {
                    "$ref": "#/$defs/PackageContentTest"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "title": "Then"
        },
        "else": {
          "anyOf": [
            {
              "$ref": "#/$defs/ScriptTestElement"
            },
            {
              "$ref": "#/$defs/PythonTestElement"
            },
            {
              "$ref": "#/$defs/PerlTestElement"
            },
            {
              "$ref": "#/$defs/RTestElement"
            },
            {
              "$ref": "#/$defs/RubyTestElement"
            },
            {
              "$ref": "#/$defs/DownstreamTestElement"
            },
            {
              "$ref": "#/$defs/PackageContentTest"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ScriptTestElement"
                  },
                  {
                    "$ref": "#/$defs/PythonTestElement"
                  },
                  {
                    "$ref": "#/$defs/PerlTestElement"
                  },
                  {
                    "$ref": "#/$defs/RTestElement"
                  },
                  {
                    "$ref": "#/$defs/RubyTestElement"
                  },
                  {
                    "$ref": "#/$defs/DownstreamTestElement"
                  },
                  {
                    "$ref": "#/$defs/PackageContentTest"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Else"
        }
      },
      "required": [
        "if",
        "then"
      ],
      "title": "IfStatement[Union[ScriptTestElement, PythonTestElement, PerlTestElement, RTestElement, RubyTestElement, DownstreamTestElement, PackageContentTest]]",
      "additionalProperties": false
    },
    "IfStatement_Union_UrlSource__GitRev__GitTag__GitBranch__BaseGitSource__LocalSource__": {
      "type": "object",
      "properties": {
        "if": {
          "title": "If",
          "type": "string"
        },
        "then": {
          "anyOf": [
            {
              "$ref": "#/$defs/UrlSource"
            },
            {
              "$ref": "#/$defs/GitRev"
            },
            {
              "$ref": "#/$defs/GitTag"
            },
            {
              "$ref": "#/$defs/GitBranch"
            },
            {
              "$ref": "#/$defs/BaseGitSource"
            },
            {
              "$ref": "#/$defs/LocalSource"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/UrlSource"
                  },
                  {
                    "$ref": "#/$defs/GitRev"
                  },
                  {
                    "$ref": "#/$defs/GitTag"
                  },
                  {
                    "$ref": "#/$defs/GitBranch"
                  },
                  {
                    "$ref": "#/$defs/BaseGitSource"
                  },
                  {
                    "$ref": "#/$defs/LocalSource"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "title": "Then"
        },
        "else": {
          "anyOf": [
            {
              "$ref": "#/$defs/UrlSource"
            },
            {
              "$ref": "#/$defs/GitRev"
            },
            {
              "$ref": "#/$defs/GitTag"
            },
            {
              "$ref": "#/$defs/GitBranch"
            },
            {
              "$ref": "#/$defs/BaseGitSource"
            },
            {
              "$ref": "#/$defs/LocalSource"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/UrlSource"
                  },
                  {
                    "$ref": "#/$defs/GitRev"
                  },
                  {
                    "$ref": "#/$defs/GitTag"
                  },
                  {
                    "$ref": "#/$defs/GitBranch"
                  },
                  {
                    "$ref": "#/$defs/BaseGitSource"
                  },
                  {
                    "$ref": "#/$defs/LocalSource"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Else"
        }
      },
      "required": [
        "if",
        "then"
      ],
      "title": "IfStatement[Union[UrlSource, GitRev, GitTag, GitBranch, BaseGitSource, LocalSource]]",
      "additionalProperties": false
    },
    "IgnoreRunExports": {
      "type": "object",
      "properties": {
        "by_name": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "ignore run exports by name (e.g. `libgcc-ng`)",
          "title": "By Name"
        },
        "from_package": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "ignore run exports that come from the specified packages",
          "title": "From Package"
        }
      },
      "title": "IgnoreRunExports",
      "additionalProperties": false
    },
    "LocalSource": {
      "type": "object",
      "properties": {
        "patches": {
          "anyOf": [
            {
              "pattern": "^[^\\\\]+$",
              "type": "string"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "pattern": "^[^\\\\]+$",
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement_Annotated_str__StringConstraints__"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "A list of patches to apply after fetching the source",
          "title": "Patches"
        },
        "target_directory": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The location in the working directory to place the source",
          "title": "Target Directory"
        },
        "path": {
          "description": "A path on the local machine that contains the source.",
          "title": "Path",
          "type": "string"
        },
        "sha256": {
          "anyOf": [
            {
              "maxLength": 64,
              "minLength": 64,
              "pattern": "[a-fA-F0-9]{64}",
              "type": "string"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The SHA256 hash of the source archive",
          "title": "Sha256"
        },
        "md5": {
          "anyOf": [
            {
              "maxLength": 32,
              "minLength": 32,
              "pattern": "[a-fA-F0-9]{32}",
              "type": "string"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The MD5 hash of the source archive",
          "title": "Md5"
        },
        "use_gitignore": {
          "default": true,
          "description": "Whether or not to use the .gitignore file when copying the source.",
          "title": "Use Gitignore",
          "type": "boolean"
        },
        "file_name": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A file name to rename the file to (does not apply to archives).",
          "title": "File Name"
        },
        "filter": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/GlobDict"
            }
          ],
          "default": null,
          "description": "Glob patterns to include or exclude files from the package.",
          "title": "Filter"
        }
      },
      "required": [
        "path"
      ],
      "title": "LocalSource",
      "additionalProperties": false
    },
    "Output": {
      "type": "object",
      "properties": {
        "package": {
          "anyOf": [
            {
              "$ref": "#/$defs/ComplexPackage"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The package name and version, this overwrites any top-level fields."
        },
        "inherit": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/CacheInherit"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the staging cache to inherit from, or an object with `from` and `run_exports` options.",
          "title": "Inherit"
        },
        "source": {
          "anyOf": [
            {
              "$ref": "#/$defs/UrlSource"
            },
            {
              "$ref": "#/$defs/GitRev"
            },
            {
              "$ref": "#/$defs/GitTag"
            },
            {
              "$ref": "#/$defs/GitBranch"
            },
            {
              "$ref": "#/$defs/BaseGitSource"
            },
            {
              "$ref": "#/$defs/LocalSource"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/UrlSource"
                  },
                  {
                    "$ref": "#/$defs/GitRev"
                  },
                  {
                    "$ref": "#/$defs/GitTag"
                  },
                  {
                    "$ref": "#/$defs/GitBranch"
                  },
                  {
                    "$ref": "#/$defs/BaseGitSource"
                  },
                  {
                    "$ref": "#/$defs/LocalSource"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The source items to be downloaded and used for the build.",
          "title": "Source"
        },
        "build": {
          "anyOf": [
            {
              "$ref": "#/$defs/Build"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Describes how the package should be build."
        },
        "requirements": {
          "anyOf": [
            {
              "$ref": "#/$defs/Requirements"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The package dependencies"
        },
        "tests": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ScriptTestElement"
                  },
                  {
                    "$ref": "#/$defs/PythonTestElement"
                  },
                  {
                    "$ref": "#/$defs/PerlTestElement"
                  },
                  {
                    "$ref": "#/$defs/RTestElement"
                  },
                  {
                    "$ref": "#/$defs/RubyTestElement"
                  },
                  {
                    "$ref": "#/$defs/DownstreamTestElement"
                  },
                  {
                    "$ref": "#/$defs/PackageContentTest"
                  },
                  {
                    "$ref": "#/$defs/IfStatement_Union_ScriptTestElement__PythonTestElement__PerlTestElement__RTestElement__RubyTestElement__DownstreamTestElement__PackageContentTest__"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/ScriptTestElement"
                        },
                        {
                          "$ref": "#/$defs/PythonTestElement"
                        },
                        {
                          "$ref": "#/$defs/PerlTestElement"
                        },
                        {
                          "$ref": "#/$defs/RTestElement"
                        },
                        {
                          "$ref": "#/$defs/RubyTestElement"
                        },
                        {
                          "$ref": "#/$defs/DownstreamTestElement"
                        },
                        {
                          "$ref": "#/$defs/PackageContentTest"
                        },
                        {
                          "$ref": "#/$defs/IfStatement_Union_ScriptTestElement__PythonTestElement__PerlTestElement__RTestElement__RubyTestElement__DownstreamTestElement__PackageContentTest__"
                        }
                      ]
                    },
                    "type": "array"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Tests to run after packaging",
          "title": "Tests"
        },
        "about": {
          "anyOf": [
            {
              "$ref": "#/$defs/About"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A human readable description of the package information. The values here are merged with the top level `about` field."
        }
      },
      "title": "Output",
      "additionalProperties": false
    },
    "PackageContentTest": {
      "type": "object",
      "properties": {
        "package_contents": {
          "allOf": [
            {
              "$ref": "#/$defs/PackageContentTestInner"
            }
          ],
          "description": "Test if the package contains the specified files."
        }
      },
      "required": [
        "package_contents"
      ],
      "title": "PackageContentTest",
      "additionalProperties": false
    },
    "PackageContentTestInner": {
      "type": "object",
      "properties": {
        "files": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/FileExistenceCheck"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Files expectations for the whole package. Can be a list of files/globs or an object with exists/not_exists.",
          "title": "Files"
        },
        "include": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/FileExistenceCheck"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "Files that should be in the `include/` folder of the package. This folder is found under `$PREFIX/include` on Unix and `$PREFIX/Library/include` on Windows.",
          "title": "Include"
        },
        "site_packages": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/FileExistenceCheck"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "Files that should be in the `site-packages/` folder of the package. This folder is found under `$PREFIX/lib/pythonX.Y/site-packages` on Unix and `$PREFIX/Lib/site-packages` on Windows.",
          "title": "Site Packages"
        },
        "bin": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/FileExistenceCheck"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "Files that should be in the `bin/` folder of the package. This folder is found under `$PREFIX/bin` on Unix. On Windows this searches for files in `%PREFIX`, `%PREFIX%/bin`, `%PREFIX%/Scripts`, `%PREFIX%/Library/bin`, `%PREFIX/Library/usr/bin` and  `%PREFIX/Library/mingw-w64/bin`.",
          "title": "Bin"
        },
        "lib": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "Files that should be in the `lib/` folder of the package. This folder is found under `$PREFIX/lib` on Unix and %PREFIX%/Library/lib on Windows.",
          "title": "Lib"
        },
        "strict": {
          "default": false,
          "description": "When true, the package must not contain any files other than those specified.",
          "title": "Strict",
          "type": "boolean"
        }
      },
      "title": "PackageContentTestInner",
      "additionalProperties": false
    },
    "PerlTestElement": {
      "type": "object",
      "properties": {
        "perl": {
          "allOf": [
            {
              "$ref": "#/$defs/PerlTestElementInner"
            }
          ],
          "description": "Perl specific test configuration"
        }
      },
      "required": [
        "perl"
      ],
      "title": "PerlTestElement",
      "additionalProperties": false
    },
    "PerlTestElementInner": {
      "type": "object",
      "properties": {
        "uses": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "description": "A list of Perl modules to check after having installed the built package.",
          "title": "Uses"
        }
      },
      "required": [
        "uses"
      ],
      "title": "PerlTestElementInner",
      "additionalProperties": false
    },
    "PostProcess": {
      "type": "object",
      "properties": {
        "files": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "description": "Files to apply post-processing to",
          "title": "Files"
        },
        "regex": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            }
          ],
          "description": "Regular expression pattern to match",
          "title": "Regex"
        },
        "replacement": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            }
          ],
          "description": "Replacement string",
          "title": "Replacement"
        }
      },
      "required": [
        "files",
        "regex",
        "replacement"
      ],
      "title": "PostProcess",
      "additionalProperties": false
    },
    "PrefixDetection": {
      "type": "object",
      "properties": {
        "force_file_type": {
          "anyOf": [
            {
              "$ref": "#/$defs/ForceFileType"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "force the file type of the given files to be TEXT or BINARY"
        },
        "ignore": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            },
            {
              "pattern": "^[^\\\\]+$",
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "pattern": "^[^\\\\]+$",
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": false,
          "description": "Ignore all or specific files for prefix replacement",
          "title": "Ignore"
        },
        "ignore_binary_files": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            }
          ],
          "default": false,
          "description": "Whether to detect binary files with prefix or not",
          "title": "Ignore Binary Files"
        }
      },
      "title": "PrefixDetection",
      "additionalProperties": false
    },
    "Python": {
      "type": "object",
      "properties": {
        "entry_points": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "title": "Entry Points"
        },
        "use_python_app_entrypoint": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            }
          ],
          "default": false,
          "description": "Specifies if python.app should be used as the entrypoint on macOS. (macOS only)",
          "title": "Use Python App Entrypoint"
        },
        "preserve_egg_dir": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            }
          ],
          "default": false,
          "title": "Preserve Egg Dir"
        },
        "skip_pyc_compilation": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/GlobDict"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "type": "string"
                        },
                        {
                          "$ref": "#/$defs/IfStatement"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  {
                    "$ref": "#/$defs/GlobDict"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Skip compiling pyc for some files",
          "title": "Skip Pyc Compilation"
        },
        "site_packages_path": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The path to the site-packages folder. This is advertised by Python to install noarch packages in the correct location. Only valid for a Python package.",
          "title": "Site Packages Path"
        },
        "version_independent": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            }
          ],
          "default": false,
          "description": "Whether the package is version independent or not. This is useful for 'abi3' packages that are OS specific, but not Python version specific.",
          "title": "Version Independent"
        }
      },
      "title": "Python",
      "additionalProperties": false
    },
    "PythonTestElement": {
      "type": "object",
      "properties": {
        "python": {
          "allOf": [
            {
              "$ref": "#/$defs/PythonTestElementInner"
            }
          ],
          "description": "Python specific test configuration"
        }
      },
      "required": [
        "python"
      ],
      "title": "PythonTestElement",
      "additionalProperties": false
    },
    "PythonTestElementInner": {
      "type": "object",
      "properties": {
        "imports": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": null,
          "description": "A list of Python imports to check after having installed the built package.",
          "title": "Imports"
        },
        "pip_check": {
          "default": true,
          "description": "Whether or not to run `pip check` during the Python tests.",
          "title": "Pip Check",
          "type": "boolean"
        },
        "python_version": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Python version(s) to test against. If not specified, the default python version is used.",
          "title": "Python Version"
        }
      },
      "title": "PythonTestElementInner",
      "additionalProperties": false
    },
    "RTestElement": {
      "type": "object",
      "properties": {
        "r": {
          "allOf": [
            {
              "$ref": "#/$defs/RTestElementInner"
            }
          ],
          "description": "R specific test configuration"
        }
      },
      "required": [
        "r"
      ],
      "title": "RTestElement",
      "additionalProperties": false
    },
    "RTestElementInner": {
      "type": "object",
      "properties": {
        "libraries": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "description": "A list of R libraries to check after having installed the built package.",
          "title": "Libraries"
        }
      },
      "required": [
        "libraries"
      ],
      "title": "RTestElementInner",
      "additionalProperties": false
    },
    "Requirements": {
      "type": "object",
      "properties": {
        "build": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Dependencies to install on the build platform architecture. Compilers, CMake, everything that needs to execute at build time.",
          "title": "Build"
        },
        "host": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Dependencies to install on the host platform architecture. All the packages that your build links against.",
          "title": "Host"
        },
        "run": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Dependencies that should be installed alongside this package. Dependencies in the `host` section with `run_exports` are also automatically added here.",
          "title": "Run"
        },
        "run_constraints": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "constraints optional dependencies at runtime.",
          "title": "Run Constraints"
        },
        "run_exports": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/RunExports"
            }
          ],
          "default": null,
          "description": "The run exports of this package",
          "title": "Run Exports"
        },
        "ignore_run_exports": {
          "anyOf": [
            {
              "$ref": "#/$defs/IgnoreRunExports"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Ignore run-exports by name or from certain packages"
        }
      },
      "title": "Requirements",
      "additionalProperties": false
    },
    "RubyTestElement": {
      "type": "object",
      "properties": {
        "ruby": {
          "allOf": [
            {
              "$ref": "#/$defs/RubyTestElementInner"
            }
          ],
          "description": "Ruby specific test configuration"
        }
      },
      "required": [
        "ruby"
      ],
      "title": "RubyTestElement",
      "additionalProperties": false
    },
    "RubyTestElementInner": {
      "type": "object",
      "properties": {
        "requires": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "description": "A list of Ruby modules to check after having installed the built package.",
          "title": "Requires"
        }
      },
      "required": [
        "requires"
      ],
      "title": "RubyTestElementInner",
      "additionalProperties": false
    },
    "RunExports": {
      "type": "object",
      "properties": {
        "weak": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Weak run exports apply from the host env to the run env",
          "title": "Weak"
        },
        "strong": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Strong run exports apply from the build and host env to the run env",
          "title": "Strong"
        },
        "noarch": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Noarch run exports are the only ones looked at when building noarch packages",
          "title": "Noarch"
        },
        "weak_constraints": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Weak run constraints add run_constraints from the host env",
          "title": "Weak Constraints"
        },
        "strong_constraints": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Strong run constraints add run_constraints from the build and host env",
          "title": "Strong Constraints"
        }
      },
      "title": "RunExports",
      "additionalProperties": false
    },
    "ScriptTestElement": {
      "type": "object",
      "properties": {
        "script": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/FileScript"
            },
            {
              "$ref": "#/$defs/ContentScript"
            },
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": null,
          "description": "A script to run to perform the test.",
          "title": "Script"
        },
        "requirements": {
          "anyOf": [
            {
              "$ref": "#/$defs/TestElementRequires"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Additional dependencies to install before running the test."
        },
        "files": {
          "anyOf": [
            {
              "$ref": "#/$defs/TestElementFiles"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Additional files to include for the test."
        }
      },
      "title": "ScriptTestElement",
      "additionalProperties": false
    },
    "SimplePackage": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The package name",
          "title": "Name",
          "type": "string"
        },
        "version": {
          "description": "The package version",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "name",
        "version"
      ],
      "title": "SimplePackage",
      "additionalProperties": false
    },
    "SimpleRecipe": {
      "type": "object",
      "properties": {
        "schema_version": {
          "default": 1,
          "description": "The version of the YAML schema for a recipe. If the version is omitted it is assumed to be 1.",
          "maximum": 1,
          "minimum": 1,
          "title": "Schema Version",
          "type": "integer"
        },
        "context": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Defines arbitrary key-value pairs for Jinja interpolation",
          "title": "Context"
        },
        "source": {
          "anyOf": [
            {
              "$ref": "#/$defs/UrlSource"
            },
            {
              "$ref": "#/$defs/GitRev"
            },
            {
              "$ref": "#/$defs/GitTag"
            },
            {
              "$ref": "#/$defs/GitBranch"
            },
            {
              "$ref": "#/$defs/BaseGitSource"
            },
            {
              "$ref": "#/$defs/LocalSource"
            },
            {
              "$ref": "#/$defs/IfStatement_Union_UrlSource__GitRev__GitTag__GitBranch__BaseGitSource__LocalSource__"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/UrlSource"
                  },
                  {
                    "$ref": "#/$defs/GitRev"
                  },
                  {
                    "$ref": "#/$defs/GitTag"
                  },
                  {
                    "$ref": "#/$defs/GitBranch"
                  },
                  {
                    "$ref": "#/$defs/BaseGitSource"
                  },
                  {
                    "$ref": "#/$defs/LocalSource"
                  },
                  {
                    "$ref": "#/$defs/IfStatement_Union_UrlSource__GitRev__GitTag__GitBranch__BaseGitSource__LocalSource__"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The source items to be downloaded and used for the build.",
          "title": "Source"
        },
        "build": {
          "anyOf": [
            {
              "$ref": "#/$defs/Build"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Describes how the package should be build."
        },
        "about": {
          "anyOf": [
            {
              "$ref": "#/$defs/About"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A human readable description of the package information"
        },
        "extra": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "An set of arbitrary values that are included in the package manifest",
          "title": "Extra"
        },
        "package": {
          "allOf": [
            {
              "$ref": "#/$defs/SimplePackage"
            }
          ],
          "description": "The package name and version."
        },
        "tests": {
          "anyOf": [
            {
              "$ref": "#/$defs/ScriptTestElement"
            },
            {
              "$ref": "#/$defs/PythonTestElement"
            },
            {
              "$ref": "#/$defs/PerlTestElement"
            },
            {
              "$ref": "#/$defs/RTestElement"
            },
            {
              "$ref": "#/$defs/RubyTestElement"
            },
            {
              "$ref": "#/$defs/DownstreamTestElement"
            },
            {
              "$ref": "#/$defs/PackageContentTest"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ScriptTestElement"
                  },
                  {
                    "$ref": "#/$defs/PythonTestElement"
                  },
                  {
                    "$ref": "#/$defs/PerlTestElement"
                  },
                  {
                    "$ref": "#/$defs/RTestElement"
                  },
                  {
                    "$ref": "#/$defs/RubyTestElement"
                  },
                  {
                    "$ref": "#/$defs/DownstreamTestElement"
                  },
                  {
                    "$ref": "#/$defs/PackageContentTest"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Tests to run after packaging",
          "title": "Tests"
        },
        "requirements": {
          "anyOf": [
            {
              "$ref": "#/$defs/Requirements"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The package dependencies"
        }
      },
      "required": [
        "package"
      ],
      "title": "SimpleRecipe",
      "additionalProperties": false
    },
    "StagingBuild": {
      "type": "object",
      "properties": {
        "script": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/FileScript"
            },
            {
              "$ref": "#/$defs/ContentScript"
            },
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The script to execute to invoke the staging build.",
          "title": "Script"
        }
      },
      "title": "StagingBuild",
      "additionalProperties": false
    },
    "StagingMeta": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Unique name for this staging cache.",
          "minLength": 1,
          "title": "Name",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "title": "StagingMeta",
      "additionalProperties": false
    },
    "StagingOutput": {
      "type": "object",
      "properties": {
        "staging": {
          "allOf": [
            {
              "$ref": "#/$defs/StagingMeta"
            }
          ],
          "description": "Marks this output as a staging output with the given name."
        },
        "source": {
          "anyOf": [
            {
              "$ref": "#/$defs/UrlSource"
            },
            {
              "$ref": "#/$defs/GitRev"
            },
            {
              "$ref": "#/$defs/GitTag"
            },
            {
              "$ref": "#/$defs/GitBranch"
            },
            {
              "$ref": "#/$defs/BaseGitSource"
            },
            {
              "$ref": "#/$defs/LocalSource"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/UrlSource"
                  },
                  {
                    "$ref": "#/$defs/GitRev"
                  },
                  {
                    "$ref": "#/$defs/GitTag"
                  },
                  {
                    "$ref": "#/$defs/GitBranch"
                  },
                  {
                    "$ref": "#/$defs/BaseGitSource"
                  },
                  {
                    "$ref": "#/$defs/LocalSource"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The source items to be downloaded and used for the staging build.",
          "title": "Source"
        },
        "requirements": {
          "anyOf": [
            {
              "$ref": "#/$defs/StagingRequirements"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The dependencies needed for the staging build."
        },
        "build": {
          "anyOf": [
            {
              "$ref": "#/$defs/StagingBuild"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Build configuration for the staging output."
        }
      },
      "required": [
        "staging"
      ],
      "title": "StagingOutput",
      "additionalProperties": false
    },
    "StagingRequirements": {
      "type": "object",
      "properties": {
        "build": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Dependencies to install on the build platform architecture for the staging build.",
          "title": "Build"
        },
        "host": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Dependencies to install on the host platform architecture for the staging build.",
          "title": "Host"
        },
        "ignore_run_exports": {
          "anyOf": [
            {
              "$ref": "#/$defs/IgnoreRunExports"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Ignore run-exports by name or from certain packages"
        }
      },
      "title": "StagingRequirements",
      "additionalProperties": false
    },
    "TestElementFiles": {
      "type": "object",
      "properties": {
        "source": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "extra files from $SRC_DIR",
          "title": "Source"
        },
        "recipe": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "extra files from $RECIPE_DIR",
          "title": "Recipe"
        }
      },
      "title": "TestElementFiles",
      "additionalProperties": false
    },
    "TestElementRequires": {
      "type": "object",
      "properties": {
        "build": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "extra requirements with build_platform architecture (emulators, ...)",
          "title": "Build"
        },
        "run": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "extra run dependencies",
          "title": "Run"
        }
      },
      "title": "TestElementRequires",
      "additionalProperties": false
    },
    "UrlSource": {
      "type": "object",
      "properties": {
        "patches": {
          "anyOf": [
            {
              "pattern": "^[^\\\\]+$",
              "type": "string"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "pattern": "^[^\\\\]+$",
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement_Annotated_str__StringConstraints__"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "A list of patches to apply after fetching the source",
          "title": "Patches"
        },
        "target_directory": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The location in the working directory to place the source",
          "title": "Target Directory"
        },
        "url": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "items": {
                "minLength": 1,
                "type": "string"
              },
              "type": "array"
            }
          ],
          "description": "Url pointing to the source tar.gz|zip|tar.bz2|... (this can be a list of mirrors that point to the same file)",
          "title": "Url"
        },
        "sha256": {
          "anyOf": [
            {
              "maxLength": 64,
              "minLength": 64,
              "pattern": "[a-fA-F0-9]{64}",
              "type": "string"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The SHA256 hash of the source archive",
          "title": "Sha256"
        },
        "md5": {
          "anyOf": [
            {
              "maxLength": 32,
              "minLength": 32,
              "pattern": "[a-fA-F0-9]{32}",
              "type": "string"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The MD5 hash of the source archive",
          "title": "Md5"
        },
        "file_name": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A file name to rename the downloaded file to (does not apply to archives).",
          "title": "File Name"
        },
        "attestation": {
          "anyOf": [
            {
              "$ref": "#/$defs/AttestationConfig"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional attestation verification configuration."
        }
      },
      "required": [
        "url"
      ],
      "title": "UrlSource",
      "additionalProperties": false
    },
    "Variant": {
      "type": "object",
      "properties": {
        "use_keys": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Keys to forcibly use for the variant computation (even if they are not in the dependencies)",
          "title": "Use Keys"
        },
        "ignore_keys": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "$ref": "#/$defs/IfStatement"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/IfStatement"
                  }
                ]
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Keys to forcibly ignore for the variant computation (even if they are in the dependencies)",
          "title": "Ignore Keys"
        },
        "down_prioritize_variant": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "pattern": "\\$\\{\\{.*\\}\\}",
              "type": "string"
            }
          ],
          "default": 0,
          "description": "used to prefer this variant less over other variants",
          "title": "Down Prioritize Variant"
        }
      },
      "title": "Variant",
      "additionalProperties": false
    }
  },
  "anyOf": [
    {
      "$ref": "#/$defs/SimpleRecipe"
    },
    {
      "$ref": "#/$defs/ComplexRecipe"
    }
  ]
}
