enqueueChain

open suspend fun enqueueChain(chain: TaskChain)

Enqueues a TaskChain for sequential execution.

Each step executes only after the previous one succeeds. Step progress is persisted so chains resume correctly after app termination.

Observe chain-level states via observeChain:

kmpWorker.enqueueChain(chain)
kmpWorker.observeChain(chain.id).collect { state ->
when (state) {
is TaskState.Success -> println("Chain complete!")
is TaskState.Failed -> println("Chain failed at step: ${state.throwable.message}")
else -> {}
}
}

abstract suspend fun enqueueChain(chain: TaskChain, policy: ChainPolicy)

Enqueues a TaskChain with a ChainPolicy to handle duplicate chain IDs.