{"id":"form-response-diff","version":"1.0.0","description":"Reconcile two form response sets by exact respondent id.","supported_operations":["diff form responses","reconcile form respondents"],"unsupported_operations":["fuzzy respondent matching","inferred identity","definition migration","html extraction"],"semantics":["Join responses by exact respondent_id. Duplicate ids are rejected. Ids are not trimmed or normalized.","Added and removed respondents include their answers. Identical respondents are listed by id only.","A changed respondent carries the shared-definition answer diff and its precedence: invalid before added, removed, changed, or order_only.","Both nulls compare equal and do not by themselves mark the respondent changed. This comparison is not a completeness check.","Answer key order does not matter. Output answer keys follow the definition order, then unknown keys.","counts.added + counts.removed + counts.changed + counts.unchanged equals the respondent union."],"limits":{"max_input_bytes":262144,"max_output_bytes":262144,"max_input_depth":16,"max_input_nodes":20000,"max_fields":100,"max_choices":50,"max_respondents":100,"max_id_bytes":128,"max_label_bytes":256,"max_choice_bytes":128,"max_answer_string_bytes":4096,"max_answer_depth":6,"max_answer_nodes":50,"max_changes":500,"max_mapping":100},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["definition","left","right"],"properties":{"definition":{"type":"object","additionalProperties":false,"required":["fields"],"properties":{"fields":{"type":"array","maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["id","label","type","required"],"properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["string","number","integer","boolean","choice","multi","json"]},"required":{"type":"boolean"},"choices":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":50}}}}}},"left":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["respondent_id","answers"],"properties":{"respondent_id":{"type":"string","minLength":1},"answers":{"type":"object"}}}},"right":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["respondent_id","answers"],"properties":{"respondent_id":{"type":"string","minLength":1},"answers":{"type":"object"}}}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["added_respondents","removed_respondents","changed_respondents","unchanged_respondent_ids","counts"],"properties":{"added_respondents":{"type":"array"},"removed_respondents":{"type":"array"},"changed_respondents":{"type":"array"},"unchanged_respondent_ids":{"type":"array","items":{"type":"string"}},"counts":{"type":"object"}}},"examples":[{"input":{"definition":{"fields":[{"id":"name","label":"Name","type":"string","required":true}]},"left":[{"respondent_id":"r1","answers":{"name":"Ada"}},{"respondent_id":"r2","answers":{"name":"Lin"}}],"right":[{"respondent_id":"r2","answers":{"name":"Lin"}},{"respondent_id":"r3","answers":{"name":"Grace"}}]},"output":{"added_respondents":[{"respondent_id":"r3","answers":{"name":"Grace"}}],"removed_respondents":[{"respondent_id":"r1","answers":{"name":"Ada"}}],"changed_respondents":[],"unchanged_respondent_ids":["r2"],"counts":{"added":1,"removed":1,"changed":0,"unchanged":1,"respondents":3}}}],"execute_url":"/v1/tools/form-response-diff/versions/1.0.0/execute"}