{"id":"candidate-key-claim-check","version":"1.0.0","description":"Check an exact candidate-key claim, including uniqueness and minimality, under an explicit SQL null policy.","supported_operations":["check claimed candidate key","validate minimal unique key","verify candidate key certificate","audit key minimality claim","check composite candidate key","test candidate key result"],"unsupported_operations":["modify or repair source rows","infer columns or null policy","execute SQL or access a database"],"semantics":["Rows are scanned in ascending source index; columns retain caller order.","Cell equality is type-strict over null, booleans, safe integers other than -0, and Unicode strings by code point sequence.","A well-typed false claim returns valid false and the first field discrepancy; malformed input throws.","reference_version identifies ISO/IEC 9075-2:2023 §4.18, §11.8, and §11.9 narrowed by the packet README."],"limits":{"max_input_bytes":262144,"max_rows":1000,"max_columns":16,"max_cell_string_bytes":1024},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["rows","columns","null_policy","claim"],"properties":{"rows":{"type":"array","maxItems":1000,"items":{"type":"object","additionalProperties":{"type":["string","integer","boolean","null"]}}},"columns":{"type":"array","minItems":1,"maxItems":16,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":1024}},"null_policy":{"type":"string","enum":["nulls_distinct","nulls_equal","reject"]},"claim":{"type":"object","additionalProperties":false,"required":["candidate_key","evidence"],"properties":{"candidate_key":{"type":"boolean"},"evidence":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["kind","index"],"properties":{"kind":{"type":"string","enum":["null","duplicate","removable_column"]},"index":{"type":"integer","minimum":0,"maximum":999}}}]}}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["valid","reason","discrepancy","reference_version"],"properties":{"valid":{"type":"boolean"},"reason":{"type":"string"},"discrepancy":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["path","expected","actual"],"properties":{"path":{"type":"string"},"expected":{},"actual":{}}}]},"reference_version":{"type":"string","const":"ISO/IEC 9075-2:2023 §4.18, §11.8, §11.9 (narrowed profile)"}}},"examples":[{"input":{"rows":[{"a":1,"b":"x"},{"a":2,"b":"x"}],"columns":["a","b"],"null_policy":"nulls_equal","claim":{"candidate_key":false,"evidence":{"kind":"removable_column","index":1}}},"output":{"valid":true,"reason":"claim_exact","discrepancy":null,"reference_version":"ISO/IEC 9075-2:2023 §4.18, §11.8, §11.9 (narrowed profile)"}},{"input":{"rows":[{"a":1},{"a":2}],"columns":["a"],"null_policy":"nulls_distinct","claim":{"candidate_key":true,"evidence":null}},"output":{"valid":true,"reason":"claim_exact","discrepancy":null,"reference_version":"ISO/IEC 9075-2:2023 §4.18, §11.8, §11.9 (narrowed profile)"}}],"execute_url":"/v1/tools/candidate-key-claim-check/versions/1.0.0/execute"}