docs: @SuppressWarnings("unchecked")
      public static <T extends Type> T unwrap(T type) {
          Type unwrapped = type;
          while (unwrapped instanceof SerializableTypeProxy) {
              unwrapped = ((SerializableTypeProxy) type).getTypeProvider().getType();
          }
          return (T) unwrapped;
      }