Skip to content

nhra_gt.game_theory.registry

Central Registry for Game-Theoretic Mechanism Definitions.

Stores metadata, strategies, and qualitative insights for all NHRA subgames.

Classes

GameDefinition

Bases: BaseModel

Complete definition of a subgame, including qualitative insights.

Source code in src/nhra_gt/game_theory/registry.py
class GameDefinition(BaseModel):
    """
    Complete definition of a subgame, including qualitative insights.
    """

    id: str
    title: str
    players: list[str]
    strategies: list[str]
    # Flexible dict to accommodate various payoff structures (simple dict or complex matrix)
    payoffs: dict[str, Any]
    nash_equilibrium: str
    strategic_insight: str
    evidence_link: str
    key_parameter: str

GameRegistry

In-memory store for game definitions.

Source code in src/nhra_gt/game_theory/registry.py
class GameRegistry:
    """
    In-memory store for game definitions.
    """

    def __init__(self) -> None:
        self._games: dict[str, GameDefinition] = {}

    def register(self, game: GameDefinition) -> None:
        self._games[game.id] = game

    def get(self, game_id: str) -> GameDefinition:
        if game_id not in self._games:
            raise KeyError(f"Game {game_id} not found")
        return self._games[game_id]

    def list_all(self) -> list[GameDefinition]:
        return list(self._games.values())