Что дают data class и sealed class?
Data class генерирует equals, hashCode, toString, copy и деструктуризацию по первичному конструктору, поэтому это правильный инструмент для значений, которые сравнивают и копируют, — модели API, состояние UI. Sealed class ограничивает набор наследников известным списком, поэтому when по нему исчерпывающий и компилятор укажет на забытую ветку. Вместе они чисто моделируют состояние экрана: sealed-интерфейс Loading, Content, Error, а данные несут data class.