$dependencies * @param SettingDefinition[] $settingsDefinitions * @param CategoryDefinition[] $categoryDefinitions * @param array> $routeEnhancers Route enhancers keyed by identifier */ public function __construct( public string $name, public string $label, public array $dependencies = [], public array $optionalDependencies = [], public array $settingsDefinitions = [], public array $categoryDefinitions = [], public ?string $typoscript = null, public ?string $pagets = null, public array $settings = [], public bool $hidden = false, public array $routeEnhancers = [], ) {} public function toArray(): array { return array_filter(get_object_vars($this), fn(mixed $value) => $value !== null && $value !== []); } public static function __set_state(array $state): self { return new self(...$state); } }