docs: void addToCluster(SquareNode seed, List<SquareNode> graph) {
  		open.clear();
  		open.add(seed);
  		while( !open.isEmpty() ) {
  			SquareNode n = open.remove( open.size() - 1 );
  
  			for (int i = 0; i < n.square.size(); i++) {
  				SquareEdge edge = n.edges[i];
  				if( edge == null )
  					continue;
  
  				SquareNode other;
  				if( edge.a == n )
  					other = edge.b;
  				else if( edge.b == n )
  					other = edge.a;
  				else
  					throw new RuntimeException("BUG!");
  
  				if( other.graph == SquareNode.RESET_GRAPH) {
  					other.graph = n.graph;
  					graph.add(other);
  					open.add(other);
  				} else if( other.graph != n.graph ) {
  					throw new RuntimeException("BUG! "+other.graph+" "+n.graph);
  				}
  			}
  		}
  	}