Normalized prompt representation used across all PromptRunner sources.
@type t() :: %PromptRunner.Prompt{ body: String.t() | nil, commit_message: String.t() | nil, file: String.t() | nil, metadata: map(), name: String.t(), num: String.t(), origin: map() | nil, phase: integer(), sp: integer(), target_repos: [String.t()] | nil, validation_commands: [String.t()] }