docs: private N split(N node) {
      // choose the split dimension and the split point
      int minimum = node.isLeaf() ? leafMinimum : dirMinimum;
      long[] split = settings.nodeSplitter.split(node, NodeArrayAdapter.STATIC, minimum);
  
      // New node
      final N newNode = node.isLeaf() ? createNewLeafNode() : createNewDirectoryNode();
      // do the split
      node.splitByMask(newNode, split);
  
      // write changes to file
      writeNode(node);
      writeNode(newNode);
  
      return newNode;
    }