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;
};