Final run projection returned by ASM.query/3.
Result metadata is derived from the run event stream so streaming consumers and query-style consumers observe the same lane/backend/execution metadata.
Summary
Types
@type t() :: %ASM.Result{ cost: map() | nil, duration_ms: non_neg_integer() | nil, error: ASM.Error.t() | nil, messages: list() | nil, metadata: map() | nil, run_id: String.t(), session_id: String.t(), session_id_from_cli: String.t() | nil, stop_reason: atom() | String.t() | nil, text: String.t() | nil }