OptionalDurationSet on provider events.
OptionalElapsedSet on final events.
OptionalErrorSet on error events.
OptionalProviderSet on provider events.
OptionalResultSet on provider events: how many hits the provider returned, capped at maxResults.
OptionalResultsSet on fused, reranked and final events. Always empty on a provider event: a provider's
hits arrive before the permission pass, so the stream reports only their count (ResultCount).
OptionalSourceSet on final events.
Wire format for search stream events. We do not use a discriminated union at the GraphQL level (type-graphql doesn't have first-class support for union outputs in a clean way) — instead we use a Phase discriminator and make the data fields nullable per phase.