public function getProperties($flatten = false)
    {
        if (false === $flatten) {
            return $this->properties;
        } else {
            $result = [];
            foreach ($this->properties as $property) {
                if ($property instanceof SectionPropertyInterface) {
                    $result = array_merge($result, $property->getChildProperties());
                } else {
                    $result[] = $property;
                }
            }

            return $result;
        }
    }