StreamSwitchResult type
What the engine said to a switchSource request. The promise never rejects on a refusal — that would break every caller without a catch — but the answer is here for anyone who looks. reason is the engine’s own text, e.g. "Source not present in subscribed pins" for a pin whose source has not produced a context yet, "Source audio/video not active" for one that has not made it through sync, or "already switching".
Signature:
export type StreamSwitchResult = {
ok: true;
} | {
ok: false;
reason: string;
};