loadDefaultTemplates(); } private function loadDefaultTemplates(): void { $this->templates = [ 'note' => [ 'defaultParams' => ['text', 'type'], 'paramMapping' => [ '0' => 'text', '1' => 'type', ], 'defaultValues' => [ 'type' => 'info', ], 'validation' => [ 'required' => ['text'], 'optional' => ['type', 'title'], ], ], 'info' => [ 'defaultParams' => ['content'], 'paramMapping' => [ '0' => 'content', ], 'defaultValues' => [], 'validation' => [ 'required' => ['content'], 'optional' => ['title'], ], ], 'warning' => [ 'defaultParams' => ['message'], 'paramMapping' => [ '0' => 'message', ], 'defaultValues' => [], 'validation' => [ 'required' => ['message'], 'optional' => ['title'], ], ], ]; } public function registerTemplate(string $name, array $config): void { $this->templates[$name] = $config; } public function getTemplate(string $name): ?array { return $this->templates[$name] ?? null; } public function hasTemplate(string $name): bool { return isset($this->templates[$name]); } public function getParamMapping(string $templateName): array { return $this->templates[$templateName]['paramMapping'] ?? []; } public function getDefaultValues(string $templateName): array { return $this->templates[$templateName]['defaultValues'] ?? []; } }