Пример базовой ViewModel для хранения состояния экрана c его обновлением через функцию dispatch, а также бросающая действие на экран через функцию publish
Хранение состояния просходит в связке с сущностью Store, которая может хранить данные для нескольких экранов и уведомлять каждый из них при обновлении
Данные как ViewModel, так и Store могут пережить переворот экрана, смену темы и смерть процесса
Вдохновлен MVIKotlin