equals
Structural equality over every lattice component.
This is not a convenience: it is load-bearing for replication. Quilter gates every write path on it — MutableStateFlow.update stores nothing when old == new, and anti-entropy both heals and pushes back only on merged != current. A component omitted here is therefore a component whose patches are silently discarded, on the authoring node and on every receiver, unrecoverably: a delta touching only that component compares equal to the state it would have changed, so it is neither applied nor re-requested.
EntitlementLedgerComponentTest walks every component and reds if one stops being observable through equals/hashCode/toString; its JVM arm derives the component set by reflection, so a new constructor parameter fails there rather than going quietly unobservable (as transferRelocIn/transferRelocOut did, #2366).