async startLabeling() {
    if (!this.lsf) return;

    const [task, annotation] = [this.store.taskStore.selected, this.store.annotationStore.selected];

    const isLabelStream = this.mode === "labelstream";
    const taskExists = isDefined(this.lsf.task) && isDefined(task);
    const taskSelected = this.lsf.task?.id === task?.id;

    // do nothing if the task is already selected
    if (taskExists && taskSelected) {
      return;
    }

    if (!isLabelStream && (!taskSelected || isDefined(annotation))) {
      const annotationID = annotation?.id ?? task.lastAnnotation?.id;

      // this.lsf.loadTask(task.id, annotationID);
      this.lsf.selectTask(task, annotationID);
    }
  }
Initialize LSF or use already initialized instance.
Render LSF interface and load task for labeling.
@param {HTMLElement} element Root element LSF will be rendered into
@param {import("../stores/Tasks").TaskModel} task