type HandleConstructor = { fromHandle(handle: number): T | null }; const registry = new Map>(); export function registerHandle(name: string, ctor: HandleConstructor): void { registry.set(name, ctor); } export function createFromHandle(name: string, handle: number): T | null { const ctor = registry.get(name) as HandleConstructor | undefined; return ctor ? ctor.fromHandle(handle) : null; }