@Override
  public int hashCode() {
    int h = 1;
    h *= 1000003;
    h ^= key.hashCode();
    h *= 1000003;
    h ^= stringValue == null ? 0 : stringValue.hashCode();
    h *= 1000003;
    h ^= endpoint == null ? 0 : endpoint.hashCode();
    return h;
  }
When {@link #stringValue()} is present, this is the same as the {@link Span#localEndpoint()}
Otherwise, it is the same as the {@link Span#remoteEndpoint()}.
zipkin/src/main/java/zipkin2/v1/V1BinaryAnnotation.java