An A2A Task: the unit of inter-agent work.
Wire shape requires kind: "task", id, contextId, status. Optional:
artifacts, history, metadata.
Note: per spec, contextId is REQUIRED on Task (though not on Message).
Summary
Types
@type t() :: %A2aEngine.Types.Task{ artifacts: [A2aEngine.Types.Artifact.t()] | nil, context_id: String.t(), history: [A2aEngine.Types.Message.t()] | nil, id: String.t(), metadata: map() | nil, status: A2aEngine.Types.TaskStatus.t() }