code: public static <X> String createTypeId(AnnotatedType<X> annotatedType) {
          String id = createTypeId(annotatedType.getJavaClass(), annotatedType.getAnnotations(), annotatedType.getMethods(), annotatedType.getFields(), annotatedType.getConstructors());
          String hash = hash(id);
          MetadataLogger.LOG.tracef("Generated AnnotatedType id hash for %s: %s", id, hash);
          return hash;
      }
docs: Generates a unique signature for an annotated type. Members without
  annotations are omitted to reduce the length of the signature
  
  @param <X>
  @param annotatedType
  @return hash of a signature for a concrete annotated type