# Generic runtime event mixing refactoring This patch removes tachograph-specific source roles and representations from the common runtime mixing contracts. ## Main changes - `RuntimeEventMixingRule` now uses generic `RuntimeEventSelector` objects, generic pair constraints, compatibility-policy ids, and fusion-policy ids. - `RuntimeEventDescriptor` and `RuntimeEventSourceProfile` expose opaque classification values instead of `RuntimeTachographEvidenceSourceRole` and `RuntimeTachographRepresentation` fields. - `RuntimeEventDescriptorFactory` consumes pluggable `RuntimeEventSemantics` adapters. - `RuntimeEventMixingRuleRegistry` aggregates pluggable `RuntimeEventMixingRuleProvider` implementations. - Compatibility and primary-event enrichment are delegated to policy registries. - Tachograph-specific country/region/coordinate normalization and vehicle/VIN enrichment were moved out of common classes. - Common diagnostics now expose classification-count maps instead of tachograph-specific scalar fields. - `eventMixingMode=FULL` is the generic default. The tachograph provider still accepts `TACHOGRAPH_SAME_SOURCE` for request compatibility. ## Tachograph behavior retained The tachograph provider still implements: - database/file-session same-role duplicate suppression; - driver-card/vehicle-unit activity mixing; - driver-card/vehicle-unit support-event mixing; - semantic place lifecycle normalization; - tachograph nation and region normalization; - coordinate tolerance checks; - vehicle/VIN enrichment of the retained primary event. ## Validation - The complete modified mixing package was compiled with Java 21 using local stubs for external Spring/Jackson/validation APIs. - A Java runtime harness confirmed that duplicate DB/file-session driver-card activity events are reduced to one event and that generic classification diagnostics are populated. - Maven is not installed in the execution environment, so the complete project test suite was not run.