Normalized source output consumed by PromptRunner.Plan.
Summary
Types
@type t() :: %PromptRunner.Source.Result{ commit_messages: %{optional({String.t(), String.t() | nil}) => String.t()}, legacy_config: PromptRunner.Config.t() | nil, metadata: map(), phase_names: map(), project_dir: String.t() | nil, prompts: [PromptRunner.Prompt.t()], repo_groups: map(), source_root: String.t() | nil, target_repos: [map()] | nil }