docs: @SuppressWarnings("unchecked")
    public <S, D> void addConverter(Converter<S, D> converter) {
      Assert.notNull(converter, "converter");
      Class<?>[] typeArguments = TypeResolver.resolveRawArguments(Converter.class, converter.getClass());
      Assert.notNull(typeArguments, "Must declare source type argument <S> and destination type argument <D> for converter");
      config.typeMapStore.<S, D>getOrCreate(null, (Class<S>) typeArguments[0],
          (Class<D>) typeArguments[1], null, null, converter, engine);
    }