hasDirtyScopes
fun hasDirtyScopes(updatedStates: Set<StateId>, stateReads: Map<StateId, ScatterSet<GlobalKey>>?, isComponentScope: Boolean = true): Boolean
Allocation-free boolean counterpart of getDirtyScopes: whether any of updatedStates is dirty for stateReads (a spec state in component scope, or read by at least one scope). Early-exits on the first match; use when only the presence of dirty scopes matters, not the scope set.
inline fun hasDirtyScopes(updatedStates: Set<StateId>, stateReads: Map<StateId, ScatterSet<GlobalKey>>?, isComponentScope: Boolean = true, shouldSkip: (StateId) -> Boolean): Boolean
hasDirtyScopes over only the states shouldSkip rejects. Inline so the predicate is free.