private function getVersion(): ?Version
    {
        // Oops, unknown/empty path of a file who contains version
        if (empty($this->versionFilePath)) {
            throw EmptyVersionFilePathException::create();
        }

        // Oops, not readable/accessible file who contains version
        if (!is_readable($this->versionFilePath)) {
            throw UnreadableVersionFileException::create($this->versionFilePath);
        }

        $contents = file_get_contents($this->versionFilePath);

        return Version::fromString($contents);
    }