{"files":{"main.py":"from core import run\nfrom policy import POLICY\ndef evaluate(payload):\n    return run(payload, POLICY)\n","policy.py":"POLICY = {\n    'duplicate_policy': 'first',\n    'fold_case': True,\n    'tombstone_wins': True,\n    'trim_ids': True,\n    'list_merge': 'replace',\n    'nested_merge': True,\n    'null_mode': 'ignore',\n    'version_floor': 2,\n    'audit_all': True,\n    'empty_id': 'skip',\n    'order': 'id',\n    'unknown_fields': 'keep',\n}\n","helpers.py":"import copy\n\n\ndef fold(s):\n    return ''.join(chr(ord(c) + 32) if 'A' <= c <= 'Z' else c for c in s)\n\n\ndef normalize_id(raw, policy):\n    s = raw\n    if policy['trim_ids']:\n        s = s.strip()\n    if policy['fold_case']:\n        s = fold(s)\n    return s\n\n\ndef merge_value(old, new, policy):\n    if isinstance(new, dict):\n        if policy['nested_merge']:\n            base = old if isinstance(old, dict) else {}\n            return merge_obj(base, new, policy)\n        return clean_copy(new, policy)\n    if isinstance(new, list):\n        if policy['list_merge'] == 'unique' and isinstance(old, list):\n            res = copy.deepcopy(old)\n            for item in new:\n                if not any(item == o and type(item) == type(o) for o in old):\n                    res.append(copy.deepcopy(item))\n            return res\n        return copy.deepcopy(new)\n    return new\n\n\ndef clean_copy(v, policy):\n    return copy.deepcopy(v)\n\n\ndef merge_obj(old, new, policy):\n    res = copy.deepcopy(old)\n    for k, v in new.items():\n        if v is None:\n            if policy['null_mode'] == 'delete':\n                res.pop(k, None)\n            continue\n        res[k] = merge_value(res.get(k), v, policy)\n    return res\n","core.py":"import copy\nfrom helpers import normalize_id, merge_obj\n\n\ndef run(payload, policy):\n    events = payload.get('events', []) if isinstance(payload, dict) else payload\n    groups = {}\n    order_keys = []\n    for idx, ev in enumerate(events):\n        nid = normalize_id(ev['id'], policy)\n        if nid == '':\n            if policy['empty_id'] == 'error':\n                raise ValueError('empty id')\n            continue\n        if ev['version'] < policy['version_floor']:\n            continue\n        key = (nid, ev['version'])\n        if key not in groups:\n            groups[key] = [idx, idx]\n            order_keys.append(key)\n        else:\n            g = groups[key]\n            if policy['duplicate_policy'] == 'last':\n                g[1] = idx\n    selected = []\n    for key in order_keys:\n        sel = groups[key][1]\n        selected.append((key[1], sel, key[0]))\n    selected.sort(key=lambda t: (t[0], t[1]))\n    records = {}\n    tomb = set()\n    first_idx = {}\n    audit = []\n    for pos, (ver, oidx, nid) in enumerate(selected):\n        ev = events[oidx]\n        if nid not in first_idx:\n            first_idx[nid] = pos\n        applied = False\n        if ev['deleted']:\n            if nid in records:\n                del records[nid]\n                applied = True\n                if policy['tombstone_wins']:\n                    tomb.add(nid)\n            elif policy['tombstone_wins'] and nid not in tomb:\n                tomb.add(nid)\n                applied = True\n        else:\n            if nid not in tomb:\n                records[nid] = merge_obj(records.get(nid, {}), ev['fields'], policy)\n                applied = True\n        if applied or policy['audit_all']:\n            audit.append('%s:%d:%s' % (nid, ver, 'applied' if applied else 'blocked'))\n    out = []\n    for nid, f in records.items():\n        if policy['unknown_fields'] == 'drop':\n            f = {k: v for k, v in f.items() if k in ('name', 'tags', 'meta')}\n        out.append((nid, f))\n    if policy['order'] == 'id':\n        out.sort(key=lambda t: t[0])\n    else:\n        out.sort(key=lambda t: (first_idx[t[0]], t[0]))\n    return {'records': [{'id': i, 'fields': copy.deepcopy(f)} for i, f in out], 'audit': audit}\n"}}