docs: @VisibleForTesting
    public static RecordEventsSpanImpl startSpan(
        SpanContext context,
        String name,
        @Nullable Kind kind,
        @Nullable SpanId parentSpanId,
        @Nullable Boolean hasRemoteParent,
        TraceParams traceParams,
        StartEndHandler startEndHandler,
        @Nullable TimestampConverter timestampConverter,
        Clock clock) {
      RecordEventsSpanImpl span =
          new RecordEventsSpanImpl(
              context,
              name,
              kind,
              parentSpanId,
              hasRemoteParent,
              traceParams,
              startEndHandler,
              timestampConverter,
              clock);
      // Call onStart here instead of calling in the constructor to make sure the span is completely
      // initialized.
      startEndHandler.onStart(span);
      return span;
    }