One row of routing_decisions — a gateway "routing_decision" line.
new/1 owns flattening the nested descriptor/verdict/snapshot
(and descriptor.agent) wire shape onto the table's flat columns —
formerly positional d/v/s/agent digs at the mapper call site.
Summary
Types
@type t() :: %MimirAnalytics.Row.RoutingDecision{ agent_digest: String.t() | nil, budget_ceiling_microdollars: integer() | nil, candidates: list(), chosen_lane: String.t() | nil, chosen_model: String.t() | nil, decision_id: String.t(), degraded_lanes: list(), grant_id: String.t() | nil, latency_tolerance_ms: integer() | nil, outcome: String.t() | nil, reasons: list(), runtime_preference: String.t() | nil, snapshot_at: String.t() | nil, source_file: String.t(), step_id: String.t() | nil, task_class: String.t() | nil, ts: String.t() | nil, workflow_id: String.t() | nil }