public function withArrayOf(string $name, string $label, callable $elementContentDefinitionCallback)
    {
        $definition = new ContentGroupDefinition('__element__', $name);
        $elementContentDefinitionCallback(new self($definition));

        $this->contentGroup->nestedArrayContentGroups[$name] = [
            'name'       => $name,
            'label'      => $label,
            'order'      => $this->order++,
            'definition' => $definition,
        ];

        return $this;
    }