$enum * @param list $tags * @param array $options */ public function __construct( public string $key, public string $type, public string|int|float|bool|array|object|null $default, public string $label, public ?string $description = null, public bool $readonly = false, public array $enum = [], public ?string $category = null, public array $tags = [], public array $options = [], ) {} public static function __set_state(array $state): self { return new self(...$state); } public function jsonSerialize(): array { return [ ...get_object_vars($this), 'enum' => (object)$this->enum, 'options' => (object)$this->options, ]; } }