docs: public String urlForImageWith(ImageOption... options) {
      if (options == null || options.length == 0) {
        throw new IllegalArgumentException("Do not use empty options argument. "
            + "If you want to manipulate the url by hand, please use `CDAAsset.url()` instead.");
      }
  
      final String mimeType = mimeType();
      if (mimeType == null || !mimeType.startsWith("image")) {
        throw new IllegalStateException("Asset does not have an image mime type.");
      }
  
      final Map<String, ImageOption> mappedOptions
          = new LinkedHashMap<>(options.length);
  
      for (final ImageOption option : options) {
        mappedOptions.put(option.getOperation(), option);
      }
  
      String url = url();
      for (final ImageOption option : mappedOptions.values()) {
        url = option.apply(url);
      }
  
      return url;
    }