export interface CapabilityRuntime { call(capability: string, args: unknown[]): Promise; callSupported( capability: string, args: unknown[], fallbackCapability?: string, fallbackArgs?: unknown[] ): Promise; subscribe?( capability: string, args: unknown[], onEvent: (data: unknown) => void ): () => void; } export type VersionedDomain = T & { readonly v1: T; }; /** Expose latest methods at the root while preserving explicit `.v1` pins. */ export function createVersionedDomain( v1: T ): VersionedDomain { return Object.assign({}, v1, { v1 }) as VersionedDomain; }