Defines what a conversation is trying to accomplish and how we know it's done. Set at conversation creation time by a workflow step, the consuming app, or implicitly.
@type t() :: %Cyclium.Intent.GoalSpec{ completion_criteria: map(), constraints: map(), context: map(), description: binary() | nil, terminal_outcomes: map(), type: binary() }