protected function optionsSection(Option ...$options): void
    {
        if (! $options) {
            $options = $this->getOptions();
        }

        if (! $options) {
            return;
        }

        $longestLength = 0;

        $this->sectionDivider();
        $this->sectionTitleMessage('Options');

        foreach ($options as $option) {
            $longestLength =
                max(\strlen($this->getOptionName($option)), $longestLength);
        }

        foreach ($options as $option) {
            $this->sectionMessage(
                $this->getOptionName($option),
                $option->getDescription(),
                $longestLength
            );
        }
    }