{"files":{"main.py":"from core import run\nfrom policy import POLICY\n\n\ndef evaluate(payload):\n    return run(payload, POLICY)\n","policy.py":"POLICY = {\n    \"duplicate_policy\": \"last\",\n    \"fold_case\": False,\n    \"trim_ids\": False,\n    \"tombstone_wins\": False,\n    \"null_mode\": \"delete\",\n    \"nested_merge\": False,\n    \"list_merge\": \"unique\",\n    \"version_floor\": 3,\n    \"order\": \"input\",\n    \"unknown_fields\": \"drop\",\n    \"empty_id\": \"error\",\n    \"audit_all\": False,\n}\n","helpers.py":"from copy import deepcopy\n\n\ndef normalize_id(value, policy):\n    if policy[\"trim_ids\"]:\n        value = value.strip()\n    if policy[\"fold_case\"]:\n        value = value.translate(str.maketrans(\n            \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\", \"abcdefghijklmnopqrstuvwxyz\"\n        ))\n    return value\n\n\ndef json_equal(left, right):\n    if isinstance(left, bool) or isinstance(right, bool):\n        return isinstance(left, bool) and isinstance(right, bool) and left == right\n    if left is None or right is None:\n        return left is None and right is None\n    if isinstance(left, dict) or isinstance(right, dict):\n        return (\n            isinstance(left, dict)\n            and isinstance(right, dict)\n            and left.keys() == right.keys()\n            and all(json_equal(left[key], right[key]) for key in left)\n        )\n    if isinstance(left, list) or isinstance(right, list):\n        return (\n            isinstance(left, list)\n            and isinstance(right, list)\n            and len(left) == len(right)\n            and all(json_equal(a, b) for a, b in zip(left, right))\n        )\n    if isinstance(left, (int, float)) and isinstance(right, (int, float)):\n        return left == right\n    return type(left) is type(right) and left == right\n\n\ndef merge_fields(old, incoming, policy):\n    result = deepcopy(old)\n    for key, value in incoming.items():\n        if value is None:\n            if policy[\"null_mode\"] == \"delete\":\n                result.pop(key, None)\n            continue\n        previous = result.get(key)\n        if policy[\"nested_merge\"] and isinstance(previous, dict) and isinstance(value, dict):\n            result[key] = merge_fields(previous, value, policy)\n        elif isinstance(previous, list) and isinstance(value, list) and policy[\"list_merge\"] == \"unique\":\n            additions = [\n                deepcopy(item) for item in value\n                if not any(json_equal(item, existing) for existing in previous)\n            ]\n            result[key] = previous + additions\n        else:\n            result[key] = deepcopy(value)\n    return result\n","core.py":"from helpers import merge_fields, normalize_id\n\n\ndef run(payload, policy):\n    events = payload[\"events\"] if isinstance(payload, dict) else payload\n    selected = {}\n    for original_index, event in enumerate(events):\n        identifier = normalize_id(event[\"id\"], policy)\n        if identifier == \"\":\n            if policy[\"empty_id\"] == \"error\":\n                raise ValueError(\"Empty normalized id\")\n            continue\n        version = event[\"version\"]\n        if version < policy[\"version_floor\"]:\n            continue\n        key = (identifier, version)\n        if key not in selected or policy[\"duplicate_policy\"] == \"last\":\n            selected[key] = (original_index, event)\n\n    ordered = sorted(\n        selected.items(), key=lambda item: (item[0][1], item[1][0])\n    )\n    records = {}\n    tombstones = set()\n    first_processed = {}\n    audit = []\n    for processed_index, ((identifier, version), (_, event)) in enumerate(ordered):\n        first_processed.setdefault(identifier, processed_index)\n        applied = False\n        if event[\"deleted\"]:\n            if identifier in records:\n                del records[identifier]\n                applied = True\n            if policy[\"tombstone_wins\"] and identifier not in tombstones:\n                tombstones.add(identifier)\n                applied = True\n        elif identifier not in tombstones:\n            incoming = event[\"fields\"]\n            if policy[\"unknown_fields\"] == \"drop\":\n                incoming = {\n                    key: value for key, value in incoming.items()\n                    if key in (\"name\", \"tags\", \"meta\")\n                }\n            records[identifier] = merge_fields(records.get(identifier, {}), incoming, policy)\n            applied = True\n        if policy[\"audit_all\"] or applied:\n            status = \"applied\" if applied else \"blocked\"\n            audit.append(f\"{identifier}:{version}:{status}\")\n\n    if policy[\"order\"] == \"id\":\n        identifiers = sorted(records)\n    else:\n        identifiers = sorted(records, key=lambda identifier: (first_processed[identifier], identifier))\n    return {\n        \"records\": [{\"id\": identifier, \"fields\": records[identifier]} for identifier in identifiers],\n        \"audit\": audit,\n    }\n"}}