"""Finalize an accusation into a scored, terminal GameState.""" from __future__ import annotations from ..schemas.accusation import Accusation, Verdict from ..schemas.case import CaseFile from .game_state import GameState from .scoring import score_accusation def finalize_accusation( state: GameState, case: CaseFile, accusation: Accusation ) -> tuple[GameState, Verdict]: """Score the accusation and return a new, solved GameState plus the verdict.""" verdict = score_accusation(case, accusation, state) new_state = state.model_copy(update={"solved": True, "verdict": verdict}) return new_state, verdict