data[$key] = $value; } public function get(string $key, mixed $default = null): mixed { return $this->data[$key] ?? $default; } public function has(string $key): bool { return isset($this->data[$key]); } // Allow magic property access for plugin data public function __get(string $name): mixed { return $this->data[$name] ?? null; } public function __set(string $name, mixed $value): void { $this->data[$name] = $value; } // Computed properties public array $navigation { get => buildNavigation($this); } public string $homeLabel { get => loadMetadata($this->contentDir)["slug"] ?? "Home"; } }