def _extract_offer_details(self, offer_dict):
    """Extracts the acceptance status (True/False) and the proposal string from a dictionary.

    Args:
        offer_dict: A dictionary where keys are player names and values are
          either 'accept'/'reject' or item and price string.

    Returns:
        A tuple containing:
            - accepted: True if the offer was accepted, False otherwise.
            - proposal: The proposal string (e.g., the price).
    """

    values = list(offer_dict.values())

    # Check if 'accept' is present, indicating acceptance
    accepted = 'accept' in values

    # Find the proposal (the value that's not 'accept' or 'reject')
    item_and_proposal = next(
        value for value in values if value not in ('accept', 'reject')
    )

    item_and_proposal_dict = self._extract_variables(item_and_proposal)

    item = item_and_proposal_dict['item']
    proposal = item_and_proposal_dict['price']

    return accepted, proposal, item
Extracts the acceptance status (True/False) and the proposal string from a dictionary.

    Args:
        offer_dict: A dictionary where keys are player names and values are
          either 'accept'/'reject' or item and price string.

    Returns:
        A tuple containing:
            - accepted: True if the offer was accepted, False otherwise.
            - proposal: The proposal string (e.g., the price).
    
concordia/contrib/components/game_master/deprecated/bargain_payoffs_multi_item.py