docs: public TrieNode traverse(long cursorId) {
      if (!containsCursor(cursorId)) {
        throw new IllegalArgumentException();
      }
      return getChildren().filter(n -> n.containsCursor(cursorId)).findFirst().map(n -> n.traverse(cursorId))
        .orElse(this);
    }