insertNode(node = {}, view, protoTiddler) {

    // title might has changed after generateNewTitle()
    node.label = this.wiki.generateNewTitle(node.label || utils.getRandomLabel());

    // add to tiddler store
    const tObj = new $tw.Tiddler(
      { text: '' }, // https://github.com/Jermolene/TiddlyWiki5/issues/2025
      protoTiddler,
      {
        title: node.label, // force title
        'tmap.id': null // force empty id (generated later)
      },
      this.wiki.getModificationFields(),
      this.wiki.getCreationFields()
    );

    this.wiki.addTiddler(tObj);

    node = this.makeNode(tObj, node);

    if (ViewAbstraction.exists(view)) {
      (new ViewAbstraction(view)).addNode(node);
    }

    return node;

  }
Create a new tiddler that gets a non-existant title and is opened
for edit. If a view is registered, the fields of the tiddler match
the current view. If arguments network and position are specified,
the node is also inserted directly into the graph at the given
position.

@TODO: Description is obsolete!

@param {object} node A node object to be inserted
@param {ViewAbstraction|string} view - used to set positions and register the node to
@param {Tiddler} protoTiddler