Run Aware Collector Strategy
A CollectorStrategy that also wants the full CollectorRunContext (run id, dry-run flag, clock), not just the bare context id — so it can tag whatever it writes (e.g. trace rows) with the run that produced them.
Extends rather than replaces CollectorStrategy so a runner that only knows the plain SAM still works: the bridge below satisfies it by building an ephemeral, blank-runId context. That path is for callers driving the strategy without a real run behind it — anything written under a blank runId isn't queryable anywhere, so implementations should treat a blank runId as "don't persist a trace, just compute the marks."
Inheritors
Functions
Legacy SAM bridge: driven without a run context => ephemeral (blank) runId, no trace persistence.
Same contract as CollectorStrategy.mark, but with the full run context available.