Span.Builder forEndpoint(V1Span source, @Nullable zipkin2.Endpoint e) {
    if (e == null) return first; // allocate missing endpoint data to first span
    if (closeEnoughEndpoint(first, e)) return first;
    for (Span.Builder next : spans) {
      if (closeEnoughEndpoint(next, e)) return next;
    }
    return newSpanBuilder(source, e);
  }
Allows you to split a v1 span when necessary. This can be the case when reading merged
client+server spans from storage or parsing old data formats.

<p>This type isn't thread-safe: it re-uses state to avoid re-allocations in conversion loops.
zipkin/src/main/java/zipkin2/v1/V1SpanConverter.java