text: const AppState = {};
  
  AppState.create = ({
    appName = "Glory to Rome App",
    cardPool = [],
    delay = 1000,
    gameRecords = [],
    isGameOver = false,
    isVerbose = false,
    jackDeck = [],
    leaderCardId,
    leaderId,
    leadRoleKey,
    mctsRoot = null,
    orderDeck = [],
    orderDiscard = [],
    outOfTownSiteDeck = [],
    siteDeck = [],
    userMessage = null,
    versionKey = "republic",
    winnerId = null,
  
    currentInputCallback = null,
    currentMove = null,
    currentMoves = [],
    currentPhaseKey = null,
    currentPlayerId = null,
    currentPlayerOrder = null,
    currentRound = 0,
    currentStepKey = null,
  
    playerToCamp = {},
    playerToClientele = {},
    playerToHand = {},
    playerToInfluence = {},
    playerToStockpile = {},
    playerToStrategy = {},
    playerToStructures = {},
    playerToVault = {},
  
    bonusCardInstances = {},
    orderCardInstances = {},
    playerInstances = {},
    siteCardInstances = {},
    structureInstances = {},
  } = {}) =>
    Immutable({
      appName,
      cardPool,
      delay,
      gameRecords,
      isGameOver,
      isVerbose,
      jackDeck,
      leaderCardId,
      leaderId,
      leadRoleKey,
      mctsRoot,
      orderDeck,
      orderDiscard,
      outOfTownSiteDeck,
      siteDeck,
      userMessage,
      versionKey,
      winnerId,
  
      currentInputCallback,
      currentMove,
      currentMoves,
      currentPhaseKey,
      currentPlayerId,
      currentPlayerOrder,
      currentRound,
      currentStepKey,
  
      playerToCamp,
      playerToClientele,
      playerToHand,
      playerToInfluence,
      playerToStockpile,
      playerToStrategy,
      playerToStructures,
      playerToVault,
  
      bonusCardInstances,
      orderCardInstances,
      playerInstances,
      siteCardInstances,
      structureInstances,
    });
  
  Object.freeze(AppState);
  
  export default AppState;
  