OptionalDurationSet on provider events.
OptionalElapsedSet on final events.
OptionalErrorSet on error events.
OptionalProviderSet on provider events.
OptionalResultsSet on provider, fused, reranked, final events.
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.