public function generateHeaderNames()
    {
        foreach ($this->data as $baseType => &$baseArray) {
            foreach ($baseArray as $nodeName => &$nodeData) {
                if (is_array($nodeData)) {
                    $nodeName = $this->decodeNodeName($nodeName);
                    $this->generateHeaderName(
                        $nodeData,
                        new NodePath([$baseType, $nodeName]),
                        self::ARRAY_NAME, // # root is always array
                        $baseType
                    );
                }
            }
        }
    }