import type { ParamDefinition, ParamValues } from "@/lib/params"; export function buildDefaultParamValues( params: ParamDefinition[], ): ParamValues { const values: ParamValues = {}; for (const param of params) { values[param.key] = param.default; } return values; } export class DefinitionRegistry { private definitions = new Map(); private entityName: string; constructor(entityName: string) { this.entityName = entityName; } register(key: TKey, definition: TDefinition): void { this.definitions.set(key, definition); } has(key: TKey): boolean { return this.definitions.has(key); } get(key: TKey): TDefinition { const def = this.definitions.get(key); if (!def) { throw new Error(`Unknown ${this.entityName}: ${key}`); } return def; } getAll(): TDefinition[] { return Array.from(this.definitions.values()); } }