$candidate_agent_ids Agents offering this start. * @param array $busy_counts Agent id => booking count in range. * @param array $round_robin_state Mutable state bag for strategies. * * @throws DomainException When more or fewer than one candidate is present. */ public function choose( array $candidate_agent_ids, array $busy_counts, array &$round_robin_state ): int { unset( $busy_counts, $round_robin_state ); if ( 1 !== count( $candidate_agent_ids ) ) { throw new DomainException( 'assignment.explicit_only', 'explicit_only requires exactly one candidate agent.' ); } return $candidate_agent_ids[0]; } }