{
  "parameters": {
    "type": "object",
    "properties": {
      "combinator": {
        "type": "string",
        "description": "How row predicates should be combined.",
        "enum": [
          "and",
          "or"
        ],
        "default": "and"
      },
      "predicates": {
        "type": "array",
        "description": "Row predicates to evaluate.",
        "items": {
          "type": "object",
          "properties": {
            "field": {
              "type": "string",
              "description": "Field name to compare."
            },
            "operator": {
              "type": "string",
              "description": "Comparison operator.",
              "enum": [
                "eq",
                "neq",
                "gt",
                "gte",
                "lt",
                "lte",
                "contains",
                "starts_with",
                "ends_with",
                "in",
                "is_null",
                "not_null"
              ],
              "default": "eq"
            },
            "value": {
              "type": "string",
              "description": "Comparison value when the operator requires one."
            }
          }
        }
      }
    }
  },
  "inputs": [
    {
      "key": "in",
      "label": "Input",
      "required": true
    }
  ],
  "outputs": [
    {
      "key": "out",
      "label": "Output",
      "required": true
    }
  ],
  "lineage": {
    "mode": "explicit"
  },
  "deterministic": true,
  "runtimeSupported": true
}
