import org.mapstruct.Mapper; /** MapStruct can map String to String and Tag to Tag-like beans, but not a Tag to a String. */ @Mapper public interface BrokenMapper { class Tag { private final String label; public Tag(String label) { this.label = label; } public String getLabel() { return label; } } record Src(Tag tag) { } record Dst(java.time.LocalDate tag) { } Dst map(Src src); }