feat(ingest): preserve source content classifications

Keep the sources' Miliastra, battle-pass and TCG distinctions so rotating
names do not need a new title table every patch. Classification survives
cross-source merges while event IDs, dates and source identities stay fixed.
Conflicting classifications are reported instead of selecting a destination.
This commit is contained in:
Lucas Winther
2026-11-01 04:08:36 +01:00
parent 4faf3c9ceb
commit 5576e5ad5c
16 changed files with 207 additions and 3 deletions
+2
View File
@@ -124,6 +124,8 @@ for (const [, groups] of byGame) {
const merged = mergeEvents(sorted);
events.push(...merged.events);
conflictCount += merged.conflicts.length;
conflictCount += merged.classificationConflicts.length;
for (const c of merged.classificationConflicts) console.warn(` ! classification conflict: "${c.kept.title}" between ${c.kept.sourceId} and ${c.rejected.sourceId}; routing left unresolved`);
for (const c of merged.conflicts) {
console.warn(
` ! conflict: "${c.kept.title}" ${c.field} differs by ${c.deltaHours}h between sources`,