$fieldDefinitions */ private array $fieldDefinitions = [] ) {} public static function __set_state(array $state): self { return new self(...$state); } public function offsetExists(mixed $offset): bool { return isset($this->fieldDefinitions[$offset]); } public function offsetGet(mixed $offset): ?FieldTypeInterface { return $this->fieldDefinitions[$offset] ?? null; } public function offsetSet(mixed $offset, mixed $value): void { throw new \InvalidArgumentException('Fields cannot be set.', 1712539281); } public function offsetUnset(mixed $offset): void { throw new \InvalidArgumentException('Fields cannot be unset.', 1712539280); } public function getNames(): array { return array_keys($this->fieldDefinitions); } /** * @return \Traversable|FieldTypeInterface[] */ public function getIterator(): \Traversable { return new \ArrayIterator($this->fieldDefinitions); } public function count(): int { return count($this->fieldDefinitions); } }