Collector handled by an external integration package.
Remarks
Integration collectors have a stable key and type but do not expose a common
value shape. The owning package performs the native operation before next().
type is integration-owned — packages register their own type strings, so it
cannot be a closed literal union here. The string & {} intersection keeps
every string assignable while preventing integration members from matching
literal type comparisons, so switch (collector.type) narrowing still
works on DaVinciNormalizedCollector.
Collector handled by an external integration package.
Remarks
Integration collectors have a stable key and type but do not expose a common value shape. The owning package performs the native operation before
next().typeis integration-owned — packages register their own type strings, so it cannot be a closed literal union here. Thestring & {}intersection keeps every string assignable while preventing integration members from matching literaltypecomparisons, soswitch (collector.type)narrowing still works onDaVinciNormalizedCollector.