{"id":"json-array-inner-join","version":"1.0.0","description":"Inner join two JSON arrays of objects on exact keys.","supported_operations":["json array inner join","inner join json arrays","join json objects on keys"],"unsupported_operations":["outer join","fuzzy keys","numeric keys within arrays"],"semantics":["left and right must be JSON arrays of objects.","Matches objects from the left and right arrays based on strict equality of the specified keys.","Returns a new array containing the cartesian product of all matching rows.","Output keys include all from the left, then all from the right. On collision (other than join keys), right properties overwrite left.","Output array is ordered first by the left array's order, then by the right array's order.","If a row is missing any of the join keys, it is treated as having no match (missing keys never match each other).","A key tuple with more than 64 rows on either side is rejected."],"limits":{"max_array_items":10000,"max_output_items":10000,"max_keys":32,"max_join_duplicates":64},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["left","right","keys"],"properties":{"left":{"type":"array","maxItems":10000,"items":{"type":"object"}},"right":{"type":"array","maxItems":10000,"items":{"type":"object"}},"keys":{"type":"array","minItems":1,"maxItems":32,"uniqueItems":true,"items":{"type":"string","minLength":1}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["result","count"],"properties":{"result":{"type":"array","items":{"type":"object"}},"count":{"type":"integer"}}},"examples":[{"input":{"left":[{"id":1,"name":"Alice"},{"id":2,"name":"Bob"}],"right":[{"id":1,"role":"Admin"}],"keys":["id"]},"output":{"result":[{"id":1,"name":"Alice","role":"Admin"}],"count":1}}],"execute_url":"/v1/tools/json-array-inner-join/versions/1.0.0/execute"}