{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://law.arxo.io/schema/import-recipe.schema.json",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "format": {
          "const": "arxo.import.recipe/0.1"
        },
        "input": {
          "type": "string"
        },
        "mapping": {
          "type": "string"
        },
        "dependencies": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "required": [
        "format",
        "input",
        "mapping"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "format": {
          "enum": [
            "arxo.import.extraction/0.1",
            "arxo.import.extraction/0.2"
          ]
        },
        "command": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "cwd": {
          "type": "string"
        },
        "timeout_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 600
        },
        "job": {
          "type": "string"
        },
        "snapshot": {
          "type": "string"
        },
        "declarations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "selection": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "mapping": {
          "type": "string"
        },
        "dependencies": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "required": [
        "format",
        "command",
        "cwd",
        "timeout_seconds",
        "job",
        "snapshot",
        "declarations",
        "selection",
        "mapping"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "format": {
          "enum": [
            "arxo.import.survey/0.1",
            "arxo.import.survey/0.2"
          ]
        },
        "command": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "cwd": {
          "type": "string"
        },
        "timeout_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 600
        },
        "job": {
          "type": "string"
        },
        "snapshot": {
          "type": "string"
        },
        "selection": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "mapping": {
          "type": "string"
        },
        "declarations": {
          "type": "array",
          "maxItems": 0,
          "items": {
            "type": "string"
          }
        },
        "dependencies": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "required": [
        "format",
        "command",
        "cwd",
        "timeout_seconds",
        "job",
        "snapshot",
        "selection",
        "mapping"
      ],
      "additionalProperties": false
    }
  ]
}
