String = "", val score: Int = 0) interface ModelStore { // Intent consumer fun apply(intent: Intent) // Model producer fun model(): Observable<Model> }
View Event producer fun viewEvents(): Observable<ViewEvent> } sealed class ViewEvent { data class FirstNameFieldChange(val change: String) : ViewEvent() data class LastNameFieldChange(val change: String) : ViewEvent() object IncrementScoreClick : ViewEvent() }