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