# Card-place aggregation regression fix This patch changes `RuntimeEventAggregationService` so that it removes only repeated reads of the same physical source record. ## Root cause The parity implementation performed a second reduction by canonical semantic event key. Distinct same-source support records could therefore be collapsed merely because their normalized event content was equal. File-session card-place identifiers such as `CARDPLACE-1` may also repeat in separate XML `Places` sections, so generated identifiers alone are not a safe physical-record key. ## Fix - Prefer `raw.rawRecordPath` as the physical identity for file-session records. - Fall back to `raw.sourceRowId`, `raw.supportEventId`, `externalSourceEventId`, event UUID, then canonical key. - Include domain, type, semantic lifecycle and timestamp so START/END points of one interval remain separate. - Remove canonical semantic reduction from aggregation. - Preserve all card/VU evidence for downstream mixing and all CVU/IW evidence for interval reconciliation. - Add regression tests for repeated `CARDPLACE-*` identifiers across XML sections and semantically equal but physically distinct place records.