docs: public static String getGraphVizString(DoubleLinkedPoiCategory rootNode) {
          StringBuilder sb = new StringBuilder();
          Stack<PoiCategory> stack = new Stack<>();
          stack.push(rootNode);
  
          DoubleLinkedPoiCategory currentNode;
          sb.append("// dot test.dot -Tpng > test.png\r\n");
          sb.append("digraph Categories {\r\n");
          sb.append("  graph [\r\nrankdir = \"LR\"\r\n]\r\n\r\nnode [\r\nshape = \"plaintext\"\r\n]");
          while (!stack.isEmpty()) {
              currentNode = (DoubleLinkedPoiCategory) stack.pop();
              for (PoiCategory childNode : currentNode.childCategories) {
                  stack.push(childNode);
                  sb.append("\t\"").append(currentNode.getTitle()).append(" (")
                          .append(currentNode.getID()).append(")").append("\" -> \"")
                          .append(childNode.getTitle()).append(" (").append(childNode.getID())
                          .append(")").append("\"\r\n");
              }
          }
  
          sb.append("}\r\n");
          return sb.toString();
      }