One row of tool_calls — a single custom/server tool use from a Capture
session result, or one occurrence of a RunRecord name/count roll-up.
new/1 owns extracting id/name/input off the tool-use map (formerly
positional digs at the mapper call site) and defaulting input to %{}
when the tool use carried none.
A RunRecord carries no per-invocation tool-use data — only %{name, count} roll-ups (the content boundary that struct enforces: arguments
never leave the producer). Mappers.Session expands each roll-up into
count occurrences, kind "rollup", tool_use_id and input both
absent — this is the one place a tool_calls row carries no invocation
identity.