package com.correx.core.kernel.orchestration

import com.correx.core.events.types.SessionId

/**
 * How many tasks are ready to claim for a session's project, read at transition-resolution time
 * (invariant #9: the observation is taken when the predicate runs). Implemented in apps/server over
 * the task projection — core:kernel stays decoupled from core:tasks. Null injection ⇒ count 0, so
 * the [com.correx.core.transitions.conditions.TasksReady] predicate is simply false.
 */
fun interface ReadyTaskCounter {
    fun count(sessionId: SessionId): Int
}
