/**
* @param string $fieldName
* @param FieldDefinition $type
* @throws InvalidArgumentException
*/
private function addFieldDefinition(string $fieldName, FieldDefinition $type)
{
if (array_key_exists(mb_strtolower($fieldName), $this->definitions)) {
throw InvalidArgumentException::fieldNameAlreadyExists($fieldName, $this->name);
}
$this->definitions[mb_strtolower($fieldName)] = $type;
}