Майкл прав в том, что это не может быть сделано автоматически. Учитывая это, вы можете рассмотреть поэтапный подход, при котором вы начнете с генерации ваших API / интерфейсов (например, между подсистемами), приведя коллекции в этот момент к правильному типу. Вы также можете добавить утверждения, чтобы убедиться, что эти приведения были действительны, а затем могли быть удалены после тестирования.
Очевидно, что приведение не является идеальным, но это означает, что вы можете обновить API на ранней стадии (при условии, что это система на основе API), а затем "исправить" внутренние компоненты позже.