export class ServiceRegistry { private readonly services = new Map() set(name: string, service: T): void { this.services.set(name, service) } get(name: string): T | undefined { return this.services.get(name) as T | undefined } require(name: string): T { const service = this.get(name) if (service === undefined) throw new Error(`Service not registered: ${name}`) return service } clear(): void { this.services.clear() } keys(): string[] { return [...this.services.keys()].sort() } }