new Assert\Optional( new Assert\All(new Assert\Type('string')) ), 'type' => new Assert\Choice(['mariadb', 'mysql']), 'version' => new Assert\Type('integer'), ], )] public array $database; #[Assert\Collection( allowExtraFields: false, fields: ['docroot' => new Assert\Choice(['web', 'docroot'])], )] public array $drupal; #[Assert\Choice(choices: ['node', 'php'])] #[Assert\NotBlank] public string $language; #[Assert\Length(min: 1)] #[Assert\NotBlank] public string $name; #[Assert\Choice(choices: ['drupal-project', 'fractal', 'laravel', 'php-library'])] #[Assert\NotBlank] public string $type; #[Assert\NotBlank] public ?string $projectRoot; }