{
  "parameters": {
    "type": "object",
    "required": [
      "candidateKeys"
    ],
    "properties": {
      "candidateKeys": {
        "type": "array",
        "description": "Semantic comparison hints. Differences in these fields do not prevent candidates from being compared.",
        "items": {
          "type": "string"
        }
      },
      "entityType": {
        "type": "string",
        "description": "Human name for the entity being resolved, such as patient or customer.",
        "default": "entity"
      },
      "instructions": {
        "type": "string",
        "description": "Optional match/merge guidance for ambiguous records.",
        "multiline": true
      },
      "entityIdField": {
        "type": "string",
        "description": "Field for a provisional cluster label, never a persistent canonical identity.",
        "default": "resolvedEntityId"
      },
      "confidenceField": {
        "type": "string",
        "description": "Field that stores resolution confidence for each row.",
        "default": "resolutionConfidence"
      },
      "rationaleField": {
        "type": "string",
        "description": "Field that stores resolution rationale for each row.",
        "default": "resolutionRationale"
      },
      "canonicalField": {
        "type": "string",
        "description": "Compatibility field; always false until a separate persistent registry decision. This transform only emits provisional clusters.",
        "default": "isCanonical"
      }
    }
  },
  "inputs": [
    {
      "key": "in",
      "label": "Input",
      "required": true
    }
  ],
  "outputs": [
    {
      "key": "out",
      "label": "Output",
      "required": true
    }
  ],
  "lineage": {
    "mode": "row_preserving"
  },
  "deterministic": false,
  "runtimeSupported": true
}
