execute

open suspend override fun execute(effects: List<Effect>, dispatchAsync: (key: Any?, work: suspend () -> Event?) -> Unit): List<EffectResult>

Runs effects and returns one EffectResult per synchronous effect, in order. An effect registered as async (see EffectRegistry.registerAsync) produces no EffectResult here — instead, dispatchAsync is called with the effect's Debounced.debounceKey (or null if it isn't Debounced) and a suspend block that runs that handler and returns its Event; the caller (telek's Telek) is responsible for actually launching that block somewhere that outlives this execute call, for cancelling a previous same-key launch first, and for routing a non-null Event back into the FSM. dispatchAsync is expected to be fire-and-forget from this method's perspective.