{
  "definitions": {
    "ObjectPattern": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "from": {
          "type": "string",
          "minLength": 1
        },
        "to": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "instanceof": "Function"
            }
          ]
        },
        "context": {
          "type": "string"
        },
        "globOptions": {
          "type": "object"
        },
        "filter": {
          "instanceof": "Function"
        },
        "toType": {
          "enum": ["dir", "file", "template"]
        },
        "force": {
          "type": "boolean"
        },
        "info": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "instanceof": "Function"
            }
          ]
        },
        "flatten": {
          "type": "boolean"
        },
        "transform": {
          "instanceof": "Function"
        },
        "cacheTransform": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "directory": {
                  "type": "string",
                  "absolutePath": true
                },
                "keys": {
                  "anyOf": [
                    {
                      "type": "object",
                      "additionalProperties": true
                    },
                    {
                      "instanceof": "Function"
                    }
                  ]
                }
              }
            }
          ]
        },
        "transformPath": {
          "instanceof": "Function"
        },
        "noErrorOnMissing": {
          "type": "boolean"
        }
      },
      "required": ["from"]
    },
    "StringPattern": {
      "type": "string",
      "minLength": 1
    }
  },
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "patterns": {
      "type": "array",
      "minItems": 1,
      "items": {
        "anyOf": [
          {
            "$ref": "#/definitions/StringPattern"
          },
          {
            "$ref": "#/definitions/ObjectPattern"
          }
        ]
      }
    },
    "options": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "concurrency": {
          "type": "number"
        }
      }
    }
  },
  "required": ["patterns"]
}
