BpmnMappingBlocker : One reason a mapping document does not hold for a version pair (#925). rule is the discriminant; rule_number groups it (1 document well-formedness; 2 no silent drop – an unmapped, deleted element would drop a token; 3 stable meaning – kind, message binding and correlation names; 4 injectivity – no N:1 merge, because a join’s arrived is a set and would absorb the duplicate; 5 scope coherence; 6 edge images – each source flow needs a unique counterpart between its mapped endpoints; 7 join coherence – the only silent failure, since JoinState.expected is derived once and never refreshed; 8 boundary coherence – the interruption surface of a running activity must not change under it). The remaining properties are the rule’s own, and which are present depends on rule.