code: public static String of(InventoryStructure<?> structure, CanonicalPath rootPath) {
          return ComputeHash.of(structure, rootPath, true, true, true).getSyncHash();
      }
docs: The root path is required so that paths in the blueprints can be correctly relativized.
  
  @param structure the structure to compute the root hash of.
  @param rootPath the canonical path of the root of the inventory structure
  @return the sync hash of the root of the structure