{"id":"json-keyed-array-merge","version":"1.0.0","description":"Three-way merge JSON arrays by a JSON Pointer key, returning edits, moves, inserts, deletes, and conflicts.","supported_operations":["three way merge keyed JSON arrays","merge arrays by JSON Pointer identity","detect JSON array edit conflicts","merge reordered object arrays","track keyed inserts and deletes","deterministic structural array merge"],"unsupported_operations":["merge arrays with duplicate keys","infer an identity pointer"],"semantics":["Implements RFC 8259 JSON, RFC 6901 pointer decoding, and packet-defined R23 keyed merge rules version 1.0.0.","Content conflicts use lexicographically sorted keys; unchanged-side edits yield to the changed side; unresolved content uses a deterministic provisional value.","Order is taken from equal sides or the sole side changed from base; divergent two-sided order creates one order conflict."],"limits":{"max_input_bytes":262144,"max_items_per_array":256,"max_nodes":20000,"max_depth":32,"max_conflicts":512,"max_output_bytes":524288},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"properties":{"base":{"type":"array","maxItems":256,"items":{}},"left":{"type":"array","maxItems":256,"items":{}},"right":{"type":"array","maxItems":256,"items":{}},"key_pointer":{"type":"string","minLength":1,"maxLength":1024}},"required":["base","left","right","key_pointer"]},"output_schema":{"type":"object","additionalProperties":false,"properties":{"reference":{"type":"string","const":"RFC 8259 + RFC 6901 + ComputeFirst R23 keyed merge rules"},"version":{"type":"string","const":"r23-json-keyed-merge-1.0.0"},"key_pointer":{"type":"string"},"merged":{"type":"array","items":{}},"conflicts":{"type":"array","maxItems":512,"items":{"type":"object","additionalProperties":false,"properties":{"conflict_id":{"type":"string"},"kind":{"type":"string","enum":["insert_insert","delete_edit","edit_delete","edit_edit","order"]},"key":{"type":["string","null"]},"base":{},"left":{},"right":{}},"required":["conflict_id","kind","key","base","left","right"]}},"operations":{"type":"array","maxItems":1024,"items":{"type":"object","additionalProperties":false,"properties":{"side":{"type":"string","enum":["left","right"]},"type":{"type":"string","enum":["insert","delete","edit","move"]},"key":{"type":"string"}},"required":["side","type","key"]}}},"required":["reference","version","key_pointer","merged","conflicts","operations"]},"examples":[{"input":{"base":[{"id":"a","v":1}],"left":[{"id":"a","v":2}],"right":[{"id":"a","v":1},{"id":"b","v":3}],"key_pointer":"/id"},"output":{"reference":"RFC 8259 + RFC 6901 + ComputeFirst R23 keyed merge rules","version":"r23-json-keyed-merge-1.0.0","key_pointer":"/id","merged":[{"id":"a","v":2},{"id":"b","v":3}],"conflicts":[],"operations":[{"side":"left","type":"edit","key":"a"},{"side":"right","type":"insert","key":"b"}]}},{"input":{"base":[],"left":[],"right":[],"key_pointer":"/id"},"output":{"reference":"RFC 8259 + RFC 6901 + ComputeFirst R23 keyed merge rules","version":"r23-json-keyed-merge-1.0.0","key_pointer":"/id","merged":[],"conflicts":[],"operations":[]}}],"execute_url":"/v1/tools/json-keyed-array-merge/versions/1.0.0/execute"}