/**
   * Send the ending datapoint of an event that has a beginning and end.
   *
   * @param name A specific name for an event meant to be queryable
   * @param streamTime Number of milliseconds into the broadcast for when event occurs
   * @param sequenceId Associates a start and end event together. Use the corresponding sequenceId
   *     returned in TTV_SendStartSpanMetaData
   * @param humanDescription Long form string to describe the meaning of an event. Maximum length is
   *     1000 characters
   * @param data A valid JSON object that is the payload of an event. Values in this JSON object
   *     have to be strings. Maximum of 50 keys are allowed. Maximum length for values are 255
   *     characters.
   * @return True if submitted and no error, false otherwise.
   */
  public boolean endSpanMetaData(
      String name, long streamTime, long sequenceId, String humanDescription, String data) {
    if (sequenceId == -1) {
      reportError(String.format("Invalid sequence id: %d\n", sequenceId));
      return false;
    }

    ErrorCode ret =
        m_Stream.sendEndSpanMetaData(
            m_AuthToken, name, streamTime, sequenceId, humanDescription, data);
    if (ErrorCode.failed(ret)) {
      String err = ErrorCode.getString(ret);
      reportError(String.format("Error in SendStopSpanMetaData: %s\n", err));

      return false;
    }

    return true;
  }