reduce

inline fun <S : MVIState, I : MVIIntent, A : MVIAction> StoreBuilder<S, I, A>.reduce(consume: Boolean = true, name: String = ReducePluginName, crossinline reduce: Reduce<S, I, A>)

Create and install a reducePlugin.

Name is hardcoded because usually multiple reducers are not used.

Provide your own name if you want to have multiple reducers.

Events will be consumed (not passed along the chain of plugins) if consume is true (true by default).