{
  "$defs": {
    "Aggregate": {
      "additionalProperties": false,
      "description": "One aggregate function applied to one column, named by `into`.",
      "properties": {
        "column": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Column"
        },
        "function": {
          "enum": [
            "count",
            "n_unique",
            "sum",
            "mean",
            "median",
            "std",
            "var",
            "min",
            "max",
            "first",
            "last",
            "list"
          ],
          "title": "Function",
          "type": "string"
        },
        "into": {
          "title": "Into",
          "type": "string"
        }
      },
      "required": [
        "function",
        "into"
      ],
      "title": "Aggregate",
      "type": "object"
    },
    "AllOf": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "const": "all_of",
          "default": "all_of",
          "title": "Kind",
          "type": "string"
        },
        "of": {
          "items": {
            "$ref": "#/$defs/Predicate"
          },
          "minItems": 1,
          "title": "Of",
          "type": "array"
        }
      },
      "required": [
        "of"
      ],
      "title": "AllOf",
      "type": "object"
    },
    "AnyOf": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "const": "any_of",
          "default": "any_of",
          "title": "Kind",
          "type": "string"
        },
        "of": {
          "items": {
            "$ref": "#/$defs/Predicate"
          },
          "minItems": 1,
          "title": "Of",
          "type": "array"
        }
      },
      "required": [
        "of"
      ],
      "title": "AnyOf",
      "type": "object"
    },
    "ArithmeticOperation": {
      "additionalProperties": false,
      "description": "One binary operation between a column and either another column or a literal.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "default": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Default"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "into": {
          "title": "Into",
          "type": "string"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "operator": {
          "enum": [
            "add",
            "subtract",
            "multiply",
            "divide"
          ],
          "title": "Operator",
          "type": "string"
        },
        "type": {
          "const": "arithmetic",
          "default": "arithmetic",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        },
        "with_column": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "With Column"
        },
        "with_value": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "With Value"
        }
      },
      "required": [
        "id",
        "column",
        "operator",
        "into"
      ],
      "title": "ArithmeticOperation",
      "type": "object"
    },
    "CastOperation": {
      "additionalProperties": false,
      "description": "Convert a column to another type, routing failures by policy.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "default": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Default"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "to": {
          "enum": [
            "int64",
            "float64",
            "string",
            "date",
            "datetime"
          ],
          "title": "To",
          "type": "string"
        },
        "type": {
          "const": "cast",
          "default": "cast",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column",
        "to"
      ],
      "title": "CastOperation",
      "type": "object"
    },
    "CoalesceOperation": {
      "additionalProperties": false,
      "description": "First non-null across several columns, into a new one.",
      "properties": {
        "columns": {
          "items": {
            "type": "string"
          },
          "minItems": 2,
          "title": "Columns",
          "type": "array"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "into": {
          "title": "Into",
          "type": "string"
        },
        "type": {
          "const": "coalesce",
          "default": "coalesce",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "columns",
        "into"
      ],
      "title": "CoalesceOperation",
      "type": "object"
    },
    "Compare": {
      "additionalProperties": false,
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "kind": {
          "const": "compare",
          "default": "compare",
          "title": "Kind",
          "type": "string"
        },
        "op": {
          "enum": [
            "eq",
            "ne",
            "gt",
            "ge",
            "lt",
            "le"
          ],
          "title": "Op",
          "type": "string"
        },
        "value": {
          "$ref": "#/$defs/LiteralValue"
        }
      },
      "required": [
        "column",
        "op",
        "value"
      ],
      "title": "Compare",
      "type": "object"
    },
    "ConcatColumnsOperation": {
      "additionalProperties": false,
      "description": "Join text columns into a new one. A row whose every column is null gets\nnull: there was nothing to join.",
      "properties": {
        "columns": {
          "items": {
            "type": "string"
          },
          "minItems": 2,
          "title": "Columns",
          "type": "array"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "ignore_nulls": {
          "default": true,
          "title": "Ignore Nulls",
          "type": "boolean"
        },
        "into": {
          "title": "Into",
          "type": "string"
        },
        "separator": {
          "default": "",
          "title": "Separator",
          "type": "string"
        },
        "type": {
          "const": "concat_columns",
          "default": "concat_columns",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "columns",
        "into"
      ],
      "title": "ConcatColumnsOperation",
      "type": "object"
    },
    "Contains": {
      "additionalProperties": false,
      "properties": {
        "case_sensitive": {
          "default": true,
          "title": "Case Sensitive",
          "type": "boolean"
        },
        "column": {
          "title": "Column",
          "type": "string"
        },
        "kind": {
          "const": "contains",
          "default": "contains",
          "title": "Kind",
          "type": "string"
        },
        "substring": {
          "title": "Substring",
          "type": "string"
        }
      },
      "required": [
        "column",
        "substring"
      ],
      "title": "Contains",
      "type": "object"
    },
    "DatasetSinkConfig": {
      "additionalProperties": false,
      "description": "An Apify Dataset, written by name. None means the run's default Dataset.",
      "properties": {
        "dataset_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Dataset Name"
        },
        "errors": {
          "default": "struct",
          "enum": [
            "struct",
            "json"
          ],
          "title": "Errors",
          "type": "string"
        },
        "format": {
          "const": "apify_dataset",
          "title": "Format",
          "type": "string"
        }
      },
      "required": [
        "format"
      ],
      "title": "DatasetSinkConfig",
      "type": "object"
    },
    "DatasetSourceConfig": {
      "additionalProperties": false,
      "description": "An Apify Dataset, read by id.\n\nA separate model rather than optional fields on `SourceConfig`: \"a file has\na path, a dataset has an id\" is an invariant the type can hold, and a\nvalidator enforcing it at runtime would be a claim this package could not\ncheck while parsing with no engine or host present.",
      "properties": {
        "column_types": {
          "additionalProperties": {
            "enum": [
              "string",
              "int64",
              "float64",
              "bool"
            ],
            "type": "string"
          },
          "default": {},
          "title": "Column Types",
          "type": "object"
        },
        "dataset_id": {
          "title": "Dataset Id",
          "type": "string"
        },
        "format": {
          "const": "apify_dataset",
          "title": "Format",
          "type": "string"
        },
        "infer_rows": {
          "anyOf": [
            {
              "exclusiveMinimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Infer Rows"
        }
      },
      "required": [
        "format",
        "dataset_id"
      ],
      "title": "DatasetSourceConfig",
      "type": "object"
    },
    "DatePart": {
      "enum": [
        "year",
        "month",
        "day",
        "hour",
        "minute",
        "second",
        "weekday",
        "ordinal_day",
        "week"
      ],
      "type": "string"
    },
    "DatePartOperation": {
      "additionalProperties": false,
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "into": {
          "title": "Into",
          "type": "string"
        },
        "part": {
          "$ref": "#/$defs/DatePart"
        },
        "type": {
          "const": "date_part",
          "default": "date_part",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column",
        "part",
        "into"
      ],
      "title": "DatePartOperation",
      "type": "object"
    },
    "DeduplicateOperation": {
      "additionalProperties": false,
      "description": "Keep one row per distinct combination of `columns`.",
      "properties": {
        "columns": {
          "default": [],
          "items": {
            "type": "string"
          },
          "title": "Columns",
          "type": "array"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "keep": {
          "default": "first",
          "enum": [
            "first",
            "last"
          ],
          "title": "Keep",
          "type": "string"
        },
        "type": {
          "const": "deduplicate",
          "default": "deduplicate",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "title": "DeduplicateOperation",
      "type": "object"
    },
    "DropNullsOperation": {
      "additionalProperties": false,
      "description": "Remove rows carrying a null in any of `columns`.",
      "properties": {
        "columns": {
          "default": [],
          "items": {
            "type": "string"
          },
          "title": "Columns",
          "type": "array"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "drop_nulls",
          "default": "drop_nulls",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "title": "DropNullsOperation",
      "type": "object"
    },
    "DropOperation": {
      "additionalProperties": false,
      "description": "Remove columns. The propagated schema performs the projection.",
      "properties": {
        "columns": {
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "title": "Columns",
          "type": "array"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "drop",
          "default": "drop",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "columns"
      ],
      "title": "DropOperation",
      "type": "object"
    },
    "ErrorPolicy": {
      "description": "What happens to a value the operation could not produce.\n\nEvery mode records the failure in ERRORS_COLUMN. The policy governs the\n*value* and the *row*, never whether the failure is visible.",
      "enum": [
        "null",
        "keep_original",
        "default",
        "reject_row",
        "fail"
      ],
      "title": "ErrorPolicy",
      "type": "string"
    },
    "ExpectOperation": {
      "additionalProperties": false,
      "description": "Assert a predicate holds for every row.",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "error_code": {
          "default": "EXPECTATION_FAILED",
          "pattern": "^[A-Z][A-Z0-9_]*$",
          "title": "Error Code",
          "type": "string"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Message"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "predicate": {
          "$ref": "#/$defs/Predicate"
        },
        "type": {
          "const": "expect",
          "default": "expect",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "predicate"
      ],
      "title": "ExpectOperation",
      "type": "object"
    },
    "ExpectSchemaOperation": {
      "additionalProperties": false,
      "description": "Assert the input's shape. Checked at compile time, against no data.\n\nNot a FallibleOperation: it cannot fail a row, so it has no error policy.",
      "properties": {
        "allow_extra": {
          "default": true,
          "title": "Allow Extra",
          "type": "boolean"
        },
        "columns": {
          "items": {
            "$ref": "#/$defs/ExpectedField"
          },
          "minItems": 1,
          "title": "Columns",
          "type": "array"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "expect_schema",
          "default": "expect_schema",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "columns"
      ],
      "title": "ExpectSchemaOperation",
      "type": "object"
    },
    "ExpectUniqueOperation": {
      "additionalProperties": false,
      "description": "Assert a key appears at most once.\n\nRow-scoped even when the key is a single column: blanking one member of a\nduplicate group is not a coherent repair, and making the rule depend on the\nkey's length would make it depend on an arity rather than on a kind.",
      "properties": {
        "columns": {
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "title": "Columns",
          "type": "array"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "type": {
          "const": "expect_unique",
          "default": "expect_unique",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "columns"
      ],
      "title": "ExpectUniqueOperation",
      "type": "object"
    },
    "ExpectedField": {
      "additionalProperties": false,
      "description": "One column's declared contract. `None` means 'do not care'.\n\n`nullable` is deliberately absent: ingest marks every field nullable and\n`execution/dtypes.py` states that narrowing \"is a decision an explicit\noperation makes\", so the expectation could only ever fail. Requiring a value\nis a row check \u2014 `expect` with `is_null(negated=True)`.",
      "properties": {
        "logical": {
          "anyOf": [
            {
              "$ref": "#/$defs/LogicalType"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "physical": {
          "anyOf": [
            {
              "$ref": "#/$defs/PhysicalType"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "name"
      ],
      "title": "ExpectedField",
      "type": "object"
    },
    "ExplodeOperation": {
      "additionalProperties": false,
      "description": "One row per element of a list column.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "explode",
          "default": "explode",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "ExplodeOperation",
      "type": "object"
    },
    "ExtractOperation": {
      "additionalProperties": false,
      "description": "Pull a regex capture group out into a new column.\n\n`into` is required and must be new: an extraction derives a value, and\noverwriting the source would destroy the evidence of what it came from.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "group": {
          "default": 1,
          "minimum": 0,
          "title": "Group",
          "type": "integer"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "into": {
          "title": "Into",
          "type": "string"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "pattern": {
          "title": "Pattern",
          "type": "string"
        },
        "type": {
          "const": "extract",
          "default": "extract",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column",
        "pattern",
        "into"
      ],
      "title": "ExtractOperation",
      "type": "object"
    },
    "ExtractPathOperation": {
      "additionalProperties": false,
      "description": "Lift a value from inside a nested column into a top-level column.",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "into": {
          "title": "Into",
          "type": "string"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "path": {
          "$ref": "#/$defs/Path"
        },
        "type": {
          "const": "extract_path",
          "default": "extract_path",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "path",
        "into"
      ],
      "title": "ExtractPathOperation",
      "type": "object"
    },
    "FieldSchema": {
      "additionalProperties": false,
      "description": "One column's contract.",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "inner": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/FieldSchema"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Inner"
        },
        "logical": {
          "anyOf": [
            {
              "$ref": "#/$defs/LogicalType"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "nullable": {
          "default": true,
          "title": "Nullable",
          "type": "boolean"
        },
        "physical": {
          "$ref": "#/$defs/PhysicalType"
        }
      },
      "required": [
        "name",
        "physical"
      ],
      "title": "FieldSchema",
      "type": "object"
    },
    "FillNullOperation": {
      "additionalProperties": false,
      "description": "Replace nulls with a literal, or with another column's value.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "from_column": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "From Column"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "fill_null",
          "default": "fill_null",
          "title": "Type",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "FillNullOperation",
      "type": "object"
    },
    "FilterOperation": {
      "additionalProperties": false,
      "description": "Keep the rows a predicate selects.",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "filter",
          "default": "filter",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        },
        "where": {
          "$ref": "#/$defs/Predicate"
        }
      },
      "required": [
        "id",
        "where"
      ],
      "title": "FilterOperation",
      "type": "object"
    },
    "FlattenOperation": {
      "additionalProperties": false,
      "description": "Expand a struct column into one top-level column per field.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "separator": {
          "default": "_",
          "title": "Separator",
          "type": "string"
        },
        "type": {
          "const": "flatten",
          "default": "flatten",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "FlattenOperation",
      "type": "object"
    },
    "FormatDateOperation": {
      "additionalProperties": false,
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "format": {
          "title": "Format",
          "type": "string"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "into": {
          "title": "Into",
          "type": "string"
        },
        "type": {
          "const": "format_date",
          "default": "format_date",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column",
        "format",
        "into"
      ],
      "title": "FormatDateOperation",
      "type": "object"
    },
    "GroupByOperation": {
      "additionalProperties": false,
      "description": "Reduce each group of rows to one row of aggregates.",
      "properties": {
        "aggregates": {
          "items": {
            "$ref": "#/$defs/Aggregate"
          },
          "minItems": 1,
          "title": "Aggregates",
          "type": "array"
        },
        "by": {
          "default": [],
          "items": {
            "type": "string"
          },
          "title": "By",
          "type": "array"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "group_by",
          "default": "group_by",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "aggregates"
      ],
      "title": "GroupByOperation",
      "type": "object"
    },
    "InSet": {
      "additionalProperties": false,
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "kind": {
          "const": "in_set",
          "default": "in_set",
          "title": "Kind",
          "type": "string"
        },
        "values": {
          "items": {
            "$ref": "#/$defs/LiteralValue"
          },
          "minItems": 1,
          "title": "Values",
          "type": "array"
        }
      },
      "required": [
        "column",
        "values"
      ],
      "title": "InSet",
      "type": "object"
    },
    "Index": {
      "additionalProperties": false,
      "description": "A position inside a list.\n\nNon-negative: `reviews[-1]` reads as \"the last review\" only if you know the\nlist is non-empty, and the schema cannot know that.",
      "properties": {
        "kind": {
          "const": "index",
          "default": "index",
          "title": "Kind",
          "type": "string"
        },
        "position": {
          "minimum": 0,
          "title": "Position",
          "type": "integer"
        }
      },
      "required": [
        "position"
      ],
      "title": "Index",
      "type": "object"
    },
    "IsNull": {
      "additionalProperties": false,
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "kind": {
          "const": "is_null",
          "default": "is_null",
          "title": "Kind",
          "type": "string"
        },
        "negated": {
          "default": false,
          "title": "Negated",
          "type": "boolean"
        }
      },
      "required": [
        "column"
      ],
      "title": "IsNull",
      "type": "object"
    },
    "JoinOperation": {
      "additionalProperties": false,
      "description": "Enrich the frame in the chain from one named input.",
      "properties": {
        "cardinality": {
          "enum": [
            "one_to_one",
            "many_to_one",
            "many_to_many"
          ],
          "title": "Cardinality",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "how": {
          "default": "left",
          "enum": [
            "inner",
            "left",
            "semi",
            "anti"
          ],
          "title": "How",
          "type": "string"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "key_cast": {
          "anyOf": [
            {
              "const": "string",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Key Cast"
        },
        "on": {
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "title": "On",
          "type": "array"
        },
        "select": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Select"
        },
        "suffix": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Suffix"
        },
        "type": {
          "const": "join",
          "default": "join",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        },
        "with": {
          "title": "With",
          "type": "string"
        }
      },
      "required": [
        "id",
        "with",
        "on",
        "cardinality"
      ],
      "title": "JoinOperation",
      "type": "object"
    },
    "JsonParseOperation": {
      "additionalProperties": false,
      "description": "Parse JSON text into a typed nested column.\n\nThe shape is declared, never sniffed. Inferring it from the first non-null\nvalue makes the result depend on which row arrived first \u2014 the same defect\n`parse_date` refuses by requiring an explicit format.\n\nEach value is taken only as the JSON type its shape declares: a JSON\nnumber for int64 and float64, `true` or `false` for bool, a JSON string\nfor string. A number is read by the rule a `column_types` declaration\napplies to number text (spec \u00a73.4): an int64 takes an integer or a zero\nfraction, a float64 a finite number. A declaration reads a column of\ntext, so it also takes a quoted \"10\"; this sees the JSON type, so a quoted\nnumber is a row error here. Anything else is a row error, never a\nconverted value.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "shape": {
          "$ref": "#/$defs/FieldSchema"
        },
        "type": {
          "const": "json_parse",
          "default": "json_parse",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column",
        "shape"
      ],
      "title": "JsonParseOperation",
      "type": "object"
    },
    "JsonStringifyOperation": {
      "additionalProperties": false,
      "description": "Render a nested column to JSON text.\n\nNot fallible: a value that already has a type always has a rendering. This\nis the operation a CSV or Parquet sink needs for a column it cannot\notherwise represent \u2014 offered explicitly rather than applied implicitly at\nthe sink, where it would be a silent transformation.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "json_stringify",
          "default": "json_stringify",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "JsonStringifyOperation",
      "type": "object"
    },
    "Key": {
      "additionalProperties": false,
      "description": "A named field inside a struct.",
      "properties": {
        "kind": {
          "const": "key",
          "default": "key",
          "title": "Kind",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "title": "Key",
      "type": "object"
    },
    "LimitOperation": {
      "additionalProperties": false,
      "description": "Keep the first `count` rows, in the source's order.",
      "properties": {
        "count": {
          "exclusiveMinimum": 0,
          "title": "Count",
          "type": "integer"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "limit",
          "default": "limit",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "count"
      ],
      "title": "LimitOperation",
      "type": "object"
    },
    "LiteralValue": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "boolean"
        }
      ]
    },
    "LogicalType": {
      "description": "Semantic annotation layered over a physical type (String -> Email).",
      "enum": [
        "email",
        "url",
        "uuid",
        "phone",
        "currency"
      ],
      "title": "LogicalType",
      "type": "string"
    },
    "LowercaseOperation": {
      "additionalProperties": false,
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "lowercase",
          "default": "lowercase",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "LowercaseOperation",
      "type": "object"
    },
    "Matches": {
      "additionalProperties": false,
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "kind": {
          "const": "matches",
          "default": "matches",
          "title": "Kind",
          "type": "string"
        },
        "pattern": {
          "title": "Pattern",
          "type": "string"
        }
      },
      "required": [
        "column",
        "pattern"
      ],
      "title": "Matches",
      "type": "object"
    },
    "Not": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "const": "not",
          "default": "not",
          "title": "Kind",
          "type": "string"
        },
        "of": {
          "$ref": "#/$defs/Predicate"
        }
      },
      "required": [
        "of"
      ],
      "title": "Not",
      "type": "object"
    },
    "NullIfOperation": {
      "additionalProperties": false,
      "description": "Turn sentinel strings into real nulls.",
      "properties": {
        "case_sensitive": {
          "default": true,
          "title": "Case Sensitive",
          "type": "boolean"
        },
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "null_if",
          "default": "null_if",
          "title": "Type",
          "type": "string"
        },
        "values": {
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "title": "Values",
          "type": "array"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column",
        "values"
      ],
      "title": "NullIfOperation",
      "type": "object"
    },
    "ParseBoolOperation": {
      "additionalProperties": false,
      "description": "String to Boolean \u2014 the conversion SP0 left open when `cast` dropped bool.",
      "properties": {
        "case_sensitive": {
          "default": false,
          "title": "Case Sensitive",
          "type": "boolean"
        },
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "false_values": {
          "default": [
            "false",
            "f",
            "no",
            "n",
            "0"
          ],
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "title": "False Values",
          "type": "array"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "true_values": {
          "default": [
            "true",
            "t",
            "yes",
            "y",
            "1"
          ],
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "title": "True Values",
          "type": "array"
        },
        "type": {
          "const": "parse_bool",
          "default": "parse_bool",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "ParseBoolOperation",
      "type": "object"
    },
    "ParseDateOperation": {
      "additionalProperties": false,
      "description": "Parse a date or datetime under exactly one stated format.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "format": {
          "default": "",
          "description": "`\"%Y-%m-%d\"` when `to` is `\"date\"`, `\"%Y-%m-%dT%H:%M:%S\"` when `to` is `\"datetime\"`",
          "title": "Format",
          "type": "string"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "to": {
          "default": "date",
          "enum": [
            "date",
            "datetime"
          ],
          "title": "To",
          "type": "string"
        },
        "type": {
          "const": "parse_date",
          "default": "parse_date",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "ParseDateOperation",
      "type": "object"
    },
    "ParseNumberOperation": {
      "additionalProperties": false,
      "description": "Parse a formatted number string under exactly one stated convention.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "decimal_separator": {
          "default": ".",
          "enum": [
            ".",
            ","
          ],
          "title": "Decimal Separator",
          "type": "string"
        },
        "default": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Default"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "group_separator": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": ",",
          "title": "Group Separator"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "strip_characters": {
          "default": "$\u20ac\u00a3\u00a5% \t ",
          "title": "Strip Characters",
          "type": "string"
        },
        "to": {
          "enum": [
            "int64",
            "float64"
          ],
          "title": "To",
          "type": "string"
        },
        "type": {
          "const": "parse_number",
          "default": "parse_number",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column",
        "to"
      ],
      "title": "ParseNumberOperation",
      "type": "object"
    },
    "Path": {
      "additionalProperties": false,
      "description": "A resolved address into a nested column.",
      "properties": {
        "segments": {
          "items": {
            "$ref": "#/$defs/Segment"
          },
          "title": "Segments",
          "type": "array"
        }
      },
      "required": [
        "segments"
      ],
      "title": "Path",
      "type": "object"
    },
    "PhysicalType": {
      "description": "Vendor-neutral mirror of the execution engine's dtypes.",
      "enum": [
        "null",
        "bool",
        "int64",
        "float64",
        "string",
        "date",
        "datetime",
        "list",
        "struct"
      ],
      "title": "PhysicalType",
      "type": "string"
    },
    "Predicate": {
      "discriminator": {
        "mapping": {
          "all_of": "#/$defs/AllOf",
          "any_of": "#/$defs/AnyOf",
          "compare": "#/$defs/Compare",
          "contains": "#/$defs/Contains",
          "in_set": "#/$defs/InSet",
          "is_null": "#/$defs/IsNull",
          "matches": "#/$defs/Matches",
          "not": "#/$defs/Not"
        },
        "propertyName": "kind"
      },
      "oneOf": [
        {
          "$ref": "#/$defs/Compare"
        },
        {
          "$ref": "#/$defs/IsNull"
        },
        {
          "$ref": "#/$defs/Contains"
        },
        {
          "$ref": "#/$defs/Matches"
        },
        {
          "$ref": "#/$defs/InSet"
        },
        {
          "$ref": "#/$defs/AllOf"
        },
        {
          "$ref": "#/$defs/AnyOf"
        },
        {
          "$ref": "#/$defs/Not"
        }
      ]
    },
    "RenameOperation": {
      "additionalProperties": false,
      "description": "Give a column a different name, in place.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "to": {
          "title": "To",
          "type": "string"
        },
        "type": {
          "const": "rename",
          "default": "rename",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column",
        "to"
      ],
      "title": "RenameOperation",
      "type": "object"
    },
    "ReplaceOperation": {
      "additionalProperties": false,
      "description": "Substitute matches of a pattern. A pattern that matches nothing is not a failure.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "literal": {
          "default": false,
          "title": "Literal",
          "type": "boolean"
        },
        "pattern": {
          "title": "Pattern",
          "type": "string"
        },
        "replace_all": {
          "default": true,
          "title": "Replace All",
          "type": "boolean"
        },
        "replacement": {
          "default": "",
          "title": "Replacement",
          "type": "string"
        },
        "type": {
          "const": "replace",
          "default": "replace",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column",
        "pattern"
      ],
      "title": "ReplaceOperation",
      "type": "object"
    },
    "RoundOperation": {
      "additionalProperties": false,
      "description": "Round a float. An integer column is refused rather than treated as a no-op.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "decimals": {
          "default": 0,
          "minimum": 0,
          "title": "Decimals",
          "type": "integer"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "round",
          "default": "round",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "RoundOperation",
      "type": "object"
    },
    "Segment": {
      "discriminator": {
        "mapping": {
          "index": "#/$defs/Index",
          "key": "#/$defs/Key"
        },
        "propertyName": "kind"
      },
      "oneOf": [
        {
          "$ref": "#/$defs/Key"
        },
        {
          "$ref": "#/$defs/Index"
        }
      ]
    },
    "SelectOperation": {
      "additionalProperties": false,
      "description": "Keep these columns, in this order. Everything else is dropped.",
      "properties": {
        "columns": {
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "title": "Columns",
          "type": "array"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "select",
          "default": "select",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "columns"
      ],
      "title": "SelectOperation",
      "type": "object"
    },
    "SinkConfig": {
      "additionalProperties": false,
      "description": "Where one partition of the result goes. File-backed.",
      "properties": {
        "errors": {
          "default": "struct",
          "enum": [
            "struct",
            "json"
          ],
          "title": "Errors",
          "type": "string"
        },
        "format": {
          "enum": [
            "csv",
            "jsonl",
            "parquet"
          ],
          "title": "Format",
          "type": "string"
        },
        "path": {
          "title": "Path",
          "type": "string"
        }
      },
      "required": [
        "format",
        "path"
      ],
      "title": "SinkConfig",
      "type": "object"
    },
    "SortKey": {
      "additionalProperties": false,
      "description": "One ordering key.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "descending": {
          "default": false,
          "title": "Descending",
          "type": "boolean"
        },
        "nulls_last": {
          "default": false,
          "title": "Nulls Last",
          "type": "boolean"
        }
      },
      "required": [
        "column"
      ],
      "title": "SortKey",
      "type": "object"
    },
    "SortOperation": {
      "additionalProperties": false,
      "properties": {
        "by": {
          "items": {
            "$ref": "#/$defs/SortKey"
          },
          "minItems": 1,
          "title": "By",
          "type": "array"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "sort",
          "default": "sort",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "by"
      ],
      "title": "SortOperation",
      "type": "object"
    },
    "SourceConfig": {
      "additionalProperties": false,
      "description": "Where the data comes from. File-backed.",
      "properties": {
        "column_types": {
          "additionalProperties": {
            "enum": [
              "string",
              "int64",
              "float64",
              "bool"
            ],
            "type": "string"
          },
          "default": {},
          "title": "Column Types",
          "type": "object"
        },
        "format": {
          "enum": [
            "csv",
            "jsonl",
            "parquet"
          ],
          "title": "Format",
          "type": "string"
        },
        "infer_rows": {
          "anyOf": [
            {
              "exclusiveMinimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Infer Rows"
        },
        "path": {
          "title": "Path",
          "type": "string"
        }
      },
      "required": [
        "format",
        "path"
      ],
      "title": "SourceConfig",
      "type": "object"
    },
    "SplitColumnOperation": {
      "additionalProperties": false,
      "description": "Split a string into a fixed set of named columns.\n\nNamed columns rather than a list: `PhysicalType.LIST` has no unparameterised\nPolars dtype, and nested types are SP3. A fixed `into` also keeps the output\nschema knowable at compile time, which a list column would not.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "into": {
          "items": {
            "type": "string"
          },
          "minItems": 2,
          "title": "Into",
          "type": "array"
        },
        "literal": {
          "default": true,
          "title": "Literal",
          "type": "boolean"
        },
        "separator": {
          "minLength": 1,
          "title": "Separator",
          "type": "string"
        },
        "type": {
          "const": "split_column",
          "default": "split_column",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column",
        "separator",
        "into"
      ],
      "title": "SplitColumnOperation",
      "type": "object"
    },
    "TrimOperation": {
      "additionalProperties": false,
      "description": "Strip characters from both ends of a string column.",
      "properties": {
        "characters": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Characters"
        },
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "trim",
          "default": "trim",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "TrimOperation",
      "type": "object"
    },
    "UnionOperation": {
      "additionalProperties": false,
      "description": "Concatenate one or more named inputs onto the frame in the chain.\n\nColumns are reconciled by \u00a78.0's fold. Each input's values are written from\nthat input's own types: where the fold widened a column to text, a scalar\ntakes Polars' cast (a float reads `0.00001`, decision D5) and a list or\nstruct is rebuilt as ingest writes it, at any depth \u2014 so `[1, 2.5]`, read\nin a dataset of its own, reads `[1.0, 2.5]`. A rebuilt value writes its\nfloats as ingest does, `1e-05`, and a struct with a field to rebuild is\nrebuilt whole, so a float field reads `0.00001` or `1e-05` according to\nits neighbours (ledger m31). For text identical to one-dataset ingest,\ndeclare the column `string` on every input.",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "union",
          "default": "union",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        },
        "with": {
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "title": "With",
          "type": "array"
        }
      },
      "required": [
        "id",
        "with"
      ],
      "title": "UnionOperation",
      "type": "object"
    },
    "UppercaseOperation": {
      "additionalProperties": false,
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "type": {
          "const": "uppercase",
          "default": "uppercase",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "UppercaseOperation",
      "type": "object"
    },
    "ValidateCurrencyOperation": {
      "additionalProperties": false,
      "description": "Record which values in `column` are not ISO 4217 alphabetic codes.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "default": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Default"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "type": {
          "const": "validate_currency",
          "default": "validate_currency",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "ValidateCurrencyOperation",
      "type": "object"
    },
    "ValidateEmailOperation": {
      "additionalProperties": false,
      "description": "Record which values in `column` are not plausible email addresses.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "default": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Default"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "type": {
          "const": "validate_email",
          "default": "validate_email",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "ValidateEmailOperation",
      "type": "object"
    },
    "ValidatePhoneOperation": {
      "additionalProperties": false,
      "description": "Record which values in `column` are not E.164 phone numbers.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "default": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Default"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "type": {
          "const": "validate_phone",
          "default": "validate_phone",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "ValidatePhoneOperation",
      "type": "object"
    },
    "ValidateUrlOperation": {
      "additionalProperties": false,
      "description": "Record which values in `column` are not plausible URLs.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "default": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Default"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "schemes": {
          "default": [
            "http",
            "https"
          ],
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "title": "Schemes",
          "type": "array"
        },
        "type": {
          "const": "validate_url",
          "default": "validate_url",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "ValidateUrlOperation",
      "type": "object"
    },
    "ValidateUuidOperation": {
      "additionalProperties": false,
      "description": "Record which values in `column` are not well-shaped UUIDs.",
      "properties": {
        "column": {
          "title": "Column",
          "type": "string"
        },
        "default": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Default"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "on_error": {
          "$ref": "#/$defs/ErrorPolicy",
          "default": "reject_row"
        },
        "type": {
          "const": "validate_uuid",
          "default": "validate_uuid",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "column"
      ],
      "title": "ValidateUuidOperation",
      "type": "object"
    },
    "WindowOperation": {
      "additionalProperties": false,
      "description": "Compute a value over a partition and write it back to every row.",
      "properties": {
        "column": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Column"
        },
        "descending": {
          "default": false,
          "title": "Descending",
          "type": "boolean"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "function": {
          "enum": [
            "count",
            "n_unique",
            "sum",
            "mean",
            "median",
            "std",
            "var",
            "min",
            "max",
            "first",
            "last",
            "list",
            "row_number",
            "rank",
            "dense_rank"
          ],
          "title": "Function",
          "type": "string"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "into": {
          "title": "Into",
          "type": "string"
        },
        "nulls_last": {
          "default": true,
          "title": "Nulls Last",
          "type": "boolean"
        },
        "order_by": {
          "default": [],
          "items": {
            "type": "string"
          },
          "title": "Order By",
          "type": "array"
        },
        "partition_by": {
          "default": [],
          "items": {
            "type": "string"
          },
          "title": "Partition By",
          "type": "array"
        },
        "type": {
          "const": "window",
          "default": "window",
          "title": "Type",
          "type": "string"
        },
        "version": {
          "default": "1",
          "title": "Version",
          "type": "string"
        }
      },
      "required": [
        "id",
        "function",
        "into"
      ],
      "title": "WindowOperation",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "One document: a source, an ordered chain of operations, and its sinks.",
  "properties": {
    "inputs": {
      "additionalProperties": {
        "discriminator": {
          "mapping": {
            "apify_dataset": "#/$defs/DatasetSourceConfig",
            "csv": "#/$defs/SourceConfig",
            "jsonl": "#/$defs/SourceConfig",
            "parquet": "#/$defs/SourceConfig"
          },
          "propertyName": "format"
        },
        "oneOf": [
          {
            "$ref": "#/$defs/SourceConfig"
          },
          {
            "$ref": "#/$defs/DatasetSourceConfig"
          }
        ]
      },
      "default": {},
      "title": "Inputs",
      "type": "object"
    },
    "operations": {
      "default": [],
      "items": {
        "discriminator": {
          "mapping": {
            "arithmetic": "#/$defs/ArithmeticOperation",
            "cast": "#/$defs/CastOperation",
            "coalesce": "#/$defs/CoalesceOperation",
            "concat_columns": "#/$defs/ConcatColumnsOperation",
            "date_part": "#/$defs/DatePartOperation",
            "deduplicate": "#/$defs/DeduplicateOperation",
            "drop": "#/$defs/DropOperation",
            "drop_nulls": "#/$defs/DropNullsOperation",
            "expect": "#/$defs/ExpectOperation",
            "expect_schema": "#/$defs/ExpectSchemaOperation",
            "expect_unique": "#/$defs/ExpectUniqueOperation",
            "explode": "#/$defs/ExplodeOperation",
            "extract": "#/$defs/ExtractOperation",
            "extract_path": "#/$defs/ExtractPathOperation",
            "fill_null": "#/$defs/FillNullOperation",
            "filter": "#/$defs/FilterOperation",
            "flatten": "#/$defs/FlattenOperation",
            "format_date": "#/$defs/FormatDateOperation",
            "group_by": "#/$defs/GroupByOperation",
            "join": "#/$defs/JoinOperation",
            "json_parse": "#/$defs/JsonParseOperation",
            "json_stringify": "#/$defs/JsonStringifyOperation",
            "limit": "#/$defs/LimitOperation",
            "lowercase": "#/$defs/LowercaseOperation",
            "null_if": "#/$defs/NullIfOperation",
            "parse_bool": "#/$defs/ParseBoolOperation",
            "parse_date": "#/$defs/ParseDateOperation",
            "parse_number": "#/$defs/ParseNumberOperation",
            "rename": "#/$defs/RenameOperation",
            "replace": "#/$defs/ReplaceOperation",
            "round": "#/$defs/RoundOperation",
            "select": "#/$defs/SelectOperation",
            "sort": "#/$defs/SortOperation",
            "split_column": "#/$defs/SplitColumnOperation",
            "trim": "#/$defs/TrimOperation",
            "union": "#/$defs/UnionOperation",
            "uppercase": "#/$defs/UppercaseOperation",
            "validate_currency": "#/$defs/ValidateCurrencyOperation",
            "validate_email": "#/$defs/ValidateEmailOperation",
            "validate_phone": "#/$defs/ValidatePhoneOperation",
            "validate_url": "#/$defs/ValidateUrlOperation",
            "validate_uuid": "#/$defs/ValidateUuidOperation",
            "window": "#/$defs/WindowOperation"
          },
          "propertyName": "type"
        },
        "oneOf": [
          {
            "$ref": "#/$defs/ArithmeticOperation"
          },
          {
            "$ref": "#/$defs/CastOperation"
          },
          {
            "$ref": "#/$defs/CoalesceOperation"
          },
          {
            "$ref": "#/$defs/ConcatColumnsOperation"
          },
          {
            "$ref": "#/$defs/DatePartOperation"
          },
          {
            "$ref": "#/$defs/DeduplicateOperation"
          },
          {
            "$ref": "#/$defs/DropOperation"
          },
          {
            "$ref": "#/$defs/DropNullsOperation"
          },
          {
            "$ref": "#/$defs/ExpectOperation"
          },
          {
            "$ref": "#/$defs/ExpectSchemaOperation"
          },
          {
            "$ref": "#/$defs/ExpectUniqueOperation"
          },
          {
            "$ref": "#/$defs/ExplodeOperation"
          },
          {
            "$ref": "#/$defs/ExtractOperation"
          },
          {
            "$ref": "#/$defs/ExtractPathOperation"
          },
          {
            "$ref": "#/$defs/FillNullOperation"
          },
          {
            "$ref": "#/$defs/FilterOperation"
          },
          {
            "$ref": "#/$defs/FlattenOperation"
          },
          {
            "$ref": "#/$defs/FormatDateOperation"
          },
          {
            "$ref": "#/$defs/GroupByOperation"
          },
          {
            "$ref": "#/$defs/JoinOperation"
          },
          {
            "$ref": "#/$defs/JsonParseOperation"
          },
          {
            "$ref": "#/$defs/JsonStringifyOperation"
          },
          {
            "$ref": "#/$defs/LimitOperation"
          },
          {
            "$ref": "#/$defs/LowercaseOperation"
          },
          {
            "$ref": "#/$defs/NullIfOperation"
          },
          {
            "$ref": "#/$defs/ParseBoolOperation"
          },
          {
            "$ref": "#/$defs/ParseDateOperation"
          },
          {
            "$ref": "#/$defs/ParseNumberOperation"
          },
          {
            "$ref": "#/$defs/RenameOperation"
          },
          {
            "$ref": "#/$defs/ReplaceOperation"
          },
          {
            "$ref": "#/$defs/RoundOperation"
          },
          {
            "$ref": "#/$defs/SelectOperation"
          },
          {
            "$ref": "#/$defs/SortOperation"
          },
          {
            "$ref": "#/$defs/SplitColumnOperation"
          },
          {
            "$ref": "#/$defs/TrimOperation"
          },
          {
            "$ref": "#/$defs/UnionOperation"
          },
          {
            "$ref": "#/$defs/UppercaseOperation"
          },
          {
            "$ref": "#/$defs/ValidateCurrencyOperation"
          },
          {
            "$ref": "#/$defs/ValidateEmailOperation"
          },
          {
            "$ref": "#/$defs/ValidatePhoneOperation"
          },
          {
            "$ref": "#/$defs/ValidateUrlOperation"
          },
          {
            "$ref": "#/$defs/ValidateUuidOperation"
          },
          {
            "$ref": "#/$defs/WindowOperation"
          }
        ]
      },
      "title": "Operations",
      "type": "array"
    },
    "quarantine": {
      "anyOf": [
        {
          "discriminator": {
            "mapping": {
              "apify_dataset": "#/$defs/DatasetSinkConfig",
              "csv": "#/$defs/SinkConfig",
              "jsonl": "#/$defs/SinkConfig",
              "parquet": "#/$defs/SinkConfig"
            },
            "propertyName": "format"
          },
          "oneOf": [
            {
              "$ref": "#/$defs/SinkConfig"
            },
            {
              "$ref": "#/$defs/DatasetSinkConfig"
            }
          ]
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Quarantine"
    },
    "sink": {
      "discriminator": {
        "mapping": {
          "apify_dataset": "#/$defs/DatasetSinkConfig",
          "csv": "#/$defs/SinkConfig",
          "jsonl": "#/$defs/SinkConfig",
          "parquet": "#/$defs/SinkConfig"
        },
        "propertyName": "format"
      },
      "oneOf": [
        {
          "$ref": "#/$defs/SinkConfig"
        },
        {
          "$ref": "#/$defs/DatasetSinkConfig"
        }
      ],
      "title": "Sink"
    },
    "source": {
      "discriminator": {
        "mapping": {
          "apify_dataset": "#/$defs/DatasetSourceConfig",
          "csv": "#/$defs/SourceConfig",
          "jsonl": "#/$defs/SourceConfig",
          "parquet": "#/$defs/SourceConfig"
        },
        "propertyName": "format"
      },
      "oneOf": [
        {
          "$ref": "#/$defs/SourceConfig"
        },
        {
          "$ref": "#/$defs/DatasetSourceConfig"
        }
      ],
      "title": "Source"
    },
    "version": {
      "const": "1",
      "title": "Version",
      "type": "string"
    }
  },
  "required": [
    "version",
    "source",
    "sink"
  ],
  "title": "Pipeline",
  "type": "object"
}
