protected function getNestedFormFieldKeys(ModelFormLayoutNodeInterface $node = null): array
    {
        if (null === $node) {
            $children = $this->layout();
        } else {
            $children = $node->children();
        }

        $fieldKeys = [];

        foreach ($children as $key => $value) {

            if ($value instanceof ModelFormLayoutNodeInterface) {
                $fieldKeys = array_merge($fieldKeys, $this->getNestedFormFieldKeys($value));
                continue;
            }

            if (is_string($value)) {
                $fieldKeys[] = $value;
            }
        }

        return $fieldKeys;
    }