code: public static String of(Entity.Blueprint entity, CanonicalPath entityPath) {
          return ComputeHash.of(InventoryStructure.of(entity).build(), entityPath, false, true, false).getContentHash();
      }
docs: The entity path is currently only required for resources, which base their content hash on the resource type
  path which can be specified using a relative or canonical path in the blueprint. For the content hash to be
  consistent we need to convert to just a single representation of the path.
  
  @param entity the entity to produce the hash of
  @param entityPath the canonical path of the entity (can be null for all but resources)
  @return the content hash of the entity