def configure_scenes(
    player_configs: Sequence[formative_memories.AgentConfig],
    start_time: datetime.datetime,
    per_player_premise,
    num_rounds: int = 1,
) -> Sequence[scene_lib.SceneSpec]:
  """Configure the scene storyboard structure.

  Args:
    player_configs: configs for the main characters
    start_time: the time to start the first scene
    per_player_premise: the premise for the scene for each player
    num_rounds: the number of rounds to run the scene for

  Returns:
    scenes: a sequence of scene specifications
  """

  action_spec = agent_lib.free_action_spec(
      call_to_action=(
          'Generate what {name} would do next. '
          'Give a specific activity. '
          'If the selected action has a direct or indirect object then it '
          'must be specified explicitly. For example, it is valid to respond '
          'with "{name} votes for Caroline because..." but not '
          'valid to respond with "{name} votes because...".'
      ),
      tag='action',
  )

  scene_specs = {
      'social': scene_lib.SceneTypeSpec(
          name='Main scene', premise=per_player_premise, action_spec=action_spec
      ),
  }

  scenes = [
      scene_lib.SceneSpec(
          scene_type=scene_specs['social'],
          start_time=start_time,
          participant_configs=player_configs,
          num_rounds=num_rounds,
      ),
  ]
  return scenes
Configure the scene storyboard structure.

  Args:
    player_configs: configs for the main characters
    start_time: the time to start the first scene
    per_player_premise: the premise for the scene for each player
    num_rounds: the number of rounds to run the scene for

  Returns:
    scenes: a sequence of scene specifications
  
examples/deprecated/open_ended/open_ended.py