                 let branch = try container.decode(String.self, forKey: .branch)
                 self = .branch(branch)
             } else if kind == "exactVersion" {
-                let version = try container.decode(String.self, forKey: .minimumVersion)
+                let version = try container.decode(String.self, forKey: .version)
                 self = .exact(version)
             } else if kind == "versionRange" {
                 let minimumVersion = try container.decode(String.self, forKey: .minimumVersion)

            case let .exact(version):
                return [
                    "kind": "exactVersion",
                    "minimumVersion": .string(.init(version)),
                ]
            case let .range(from, to):
                return [

            case branch
            case minimumVersion
            case maximumVersion
            case version
        }

        public init(from decoder: Decoder) throws {
