start(opt_success, opt_error) {
    googAsserts.assert(
        this.config_, 'Task config must be specified for tasks to be started.');

    this.id = this.id || data.newTaskId(1)[0];
    googAsserts.assertString(this.id, 'Failed to obtain task ID.');

    // Synchronous task start.
    if (!opt_success) {
      const response = data.startProcessing(this.id, this.config_);
      this.id = response.taskId ?? null;
      return;
    }

    // Asynchronous task start.
    data.startProcessing(this.id, this.config_, (response, error) => {
      if (error) {
        opt_error(error);
      } else {
        this.id = response.taskId ?? null;
        opt_success();
      }
    });
  }
Starts processing of the task.

@param {function()=} opt_success An optional success callback, to be
    invoked after processing begins. If no success callback is supplied,
    the call is made synchronously and will throw in case of an error.
@param {function(string=)=} opt_error An optional error callback, invoked
    with an error message if the task fails to start. If no success
    callback is provided, the error callback is ignored.
@export