docs: public static void validateResourcePools(Collection<? extends ResourcePool> pools) {
      List<SizedResourcePool> ordered = new ArrayList<>(pools.size());
      for(ResourcePool pool : pools) {
        if (pool instanceof SizedResourcePool) {
          ordered.add((SizedResourcePool)pool);
        }
      }
      ordered.sort((o1, o2) -> {
        int retVal = o2.getType().getTierHeight() - o1.getType().getTierHeight();
        if (retVal == 0) {
          return o1.toString().compareTo(o2.toString());
        } else {
          return retVal;
        }
      });
  
      for (int i = 0; i < ordered.size(); i++) {
        for (int j = 0; j < i; j++) {
          SizedResourcePool upper = ordered.get(j);
          SizedResourcePool lower = ordered.get(i);
  
          boolean inversion;
          boolean ambiguity;
          try {
            ambiguity = upper.getType().getTierHeight() == lower.getType().getTierHeight();
            inversion = (upper.getUnit().compareTo(upper.getSize(), lower.getSize(), lower.getUnit()) >= 0)
                        || (lower.getUnit().compareTo(lower.getSize(), upper.getSize(), upper.getUnit()) <= 0);
          } catch (IllegalArgumentException e) {
            ambiguity = false;
            inversion = false;
          }
          if (ambiguity) {
            throw new IllegalArgumentException("Tiering Ambiguity: '" + upper + "' has the same tier height as '" + lower + "'");
          }
          if (inversion) {
            throw new IllegalArgumentException("Tiering Inversion: '" + upper + "' is not smaller than '" + lower + "'");
          }
        }
      }
    }