{
  "parameters": {
    "type": "object",
    "required": [
      "sourceFields",
      "extractedFields"
    ],
    "properties": {
      "sourceFields": {
        "type": "array",
        "description": "Text-bearing fields to combine for extraction. Enter one field per line.",
        "items": {
          "type": "string"
        }
      },
      "extractedFields": {
        "type": "array",
        "description": "Structured fields to extract.",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Output field name."
            },
            "description": {
              "type": "string",
              "description": "What to extract into this field."
            },
            "type": {
              "type": "string",
              "description": "Target scalar type.",
              "enum": [
                "string",
                "integer",
                "number",
                "boolean"
              ],
              "default": "string"
            },
            "required": {
              "type": "boolean",
              "description": "Whether the field is required in extracted output.",
              "default": false
            }
          }
        }
      },
      "outputPrefix": {
        "type": "string",
        "description": "Optional prefix added to each extracted output field."
      },
      "instructions": {
        "type": "string",
        "description": "Optional extraction guidance.",
        "multiline": true
      },
      "confidenceField": {
        "type": "string",
        "description": "Field that stores extraction confidence for each row.",
        "default": "extractionConfidence"
      },
      "rationaleField": {
        "type": "string",
        "description": "Field that stores extraction rationale for each row.",
        "default": "extractionRationale"
      }
    }
  },
  "inputs": [
    {
      "key": "in",
      "label": "Input",
      "required": true
    }
  ],
  "outputs": [
    {
      "key": "out",
      "label": "Output",
      "required": true
    }
  ],
  "lineage": {
    "mode": "row_preserving"
  },
  "deterministic": false,
  "runtimeSupported": true
}
