Ну тогда Entity для domain должен возвращать только интерфейс, который лежит в domain слое, а это интерфейс репозитория получается. И в его реализации происходит маппинг всего и вся перед тем, как вернуть это в domain. А DataSource возвращает данные которые вернулись с сервера или из другого места. Мы их называем ExampleDto. Они могут повторять структуру Entity, а могут не повторять, но у них все поля нуллабл, и маппер разруливает ситуации, когда из нуллабл нужен nonnull в entity.