equals
Equality is over (id, serviceName) ONLY — identityResolved is provenance of a sighting, not part of the endpoint's identity. The same endpoint is routinely re-sighted as its TXT record resolves; folding the flag into equality would make those two sightings unequal, so a set-keyed discovery roster (NwLoom.visiblePeers) would gain a ghost entry for one peer, and an endpointLost carrying the other flag value would fail to prune the one that was added. Same reason NwBytesReceived hand-writes its equality: the generated one would be wrong.