protected function setDotNotationKey($key, $value)
    {
        $splitKey = explode('.', $key);
        $root     = &$this->data;
        // Look for the key, creating nested keys if needed
        while ($part = array_shift($splitKey)) {
            if (!isset($root[$part]) && count($splitKey)) {
                $root[$part] = [];
            }
            $root = &$root[$part];
        }

        $root = $value;
    }