1) which then could also * contain fields. */ final readonly class FlexSheet { public function __construct( // @todo: incomplete or obsolete implementation, these properties are never read. private string $sheetIdentifier, private string $title, private string $description, private FieldCollection $fields, private array $sections, ) {} public function getFields(): FieldCollection { return $this->fields; } public function hasField(string $fieldName): bool { return isset($this->fields[$fieldName]); } public function getField(string $fieldName): FieldTypeInterface { return $this->fields[$fieldName]; } public function getSections(): array { return $this->sections; } public static function __set_state(array $state): self { return new self(...$state); } }