def __init__(
      self,
      model: language_model.LanguageModel,
      event_resolution_steps: (
          Sequence[
              Callable[
                  [interactive_document.InteractiveDocument, str, str], str
              ]
          ]
          | None
      ) = None,
      components: Sequence[str] = (),
      notify_observers: bool = False,
      make_observation_component_key: str = (
          make_observation_component.DEFAULT_MAKE_OBSERVATION_COMPONENT_KEY
      ),
      memory_component_key: str = (
          memory_component.DEFAULT_MEMORY_COMPONENT_KEY
      ),
      next_acting_component_key: str = (
          next_acting_components.DEFAULT_NEXT_ACTING_COMPONENT_KEY
      ),
      pre_act_label: str = DEFAULT_RESOLUTION_PRE_ACT_LABEL,
  ):
    """Initializes the component.

    Args:
      model: The language model to use for the component.
      event_resolution_steps: thinking steps for the event resolution component
        to use whenever it converts putative events like action suggestions into
        real events in the simulation.
      components: Keys of components to condition the event resolution on.
      notify_observers: Whether to explicitly notify observers of the event.
      make_observation_component_key: The name of the MakeObservation component
        to use to notify observers of the event.
      memory_component_key: The name of the Memory component to use to retrieve
        memories.
      next_acting_component_key: The name of the NextActing component to use
        to get the name of the player whose turn it is.
      pre_act_label: Prefix to add to the output of the component when called
        in `pre_act`.

    Raises:
      ValueError: If the component order is not None and contains duplicate
        components.
    """
    super().__init__()
    self._model = model
    self._event_resolution_steps = event_resolution_steps
    self._components = components
    self._notify_observers = notify_observers
    self._pre_act_label = pre_act_label

    self._make_observation_component_key = make_observation_component_key
    self._memory_component_key = memory_component_key
    self._next_acting_component_key = next_acting_component_key

    self._active_entity_name = None
    self._putative_action = None
Initializes the component.

    Args:
      model: The language model to use for the component.
      event_resolution_steps: thinking steps for the event resolution component
        to use whenever it converts putative events like action suggestions into
        real events in the simulation.
      components: Keys of components to condition the event resolution on.
      notify_observers: Whether to explicitly notify observers of the event.
      make_observation_component_key: The name of the MakeObservation component
        to use to notify observers of the event.
      memory_component_key: The name of the Memory component to use to retrieve
        memories.
      next_acting_component_key: The name of the NextActing component to use
        to get the name of the player whose turn it is.
      pre_act_label: Prefix to add to the output of the component when called
        in `pre_act`.

    Raises:
      ValueError: If the component order is not None and contains duplicate
        components.
    
concordia/components/game_master/event_resolution.py