     case targetDiagnostic(TargetDiagnosticInfo)
 }
 
-extension XCBuildMessage.BuildDiagnosticInfo: Decodable, Equatable {}
-extension XCBuildMessage.BuildCompletedInfo.Result: Decodable, Equatable {}
-extension XCBuildMessage.BuildCompletedInfo: Decodable, Equatable {}
-extension XCBuildMessage.BuildOutputInfo: Decodable, Equatable {}
-extension XCBuildMessage.TargetUpToDateInfo: Decodable, Equatable {}
-extension XCBuildMessage.TaskDiagnosticInfo: Decodable, Equatable {}
-extension XCBuildMessage.TargetDiagnosticInfo: Decodable, Equatable {}
-
-extension XCBuildMessage.DidUpdateProgressInfo: Decodable, Equatable {
+extension XCBuildMessage.BuildDiagnosticInfo: Codable, Equatable {}
+extension XCBuildMessage.BuildCompletedInfo.Result: Codable, Equatable {}
+extension XCBuildMessage.BuildCompletedInfo: Codable, Equatable {}
+extension XCBuildMessage.BuildOutputInfo: Codable, Equatable {}
+extension XCBuildMessage.TargetUpToDateInfo: Codable, Equatable {}
+extension XCBuildMessage.TaskDiagnosticInfo: Codable, Equatable {}
+extension XCBuildMessage.TargetDiagnosticInfo: Codable, Equatable {}
+
+extension XCBuildMessage.DidUpdateProgressInfo: Codable, Equatable {
     enum CodingKeys: String, CodingKey {
         case message
         case percentComplete

            case cancelled
        }

        let taskID: Int
        let result: Result
        let signalled: Bool
    }

    public struct TargetDiagnosticInfo {
        let targetID: Int
        let message: String
    }

    case buildStarted

    }
}

extension XCBuildMessage.TaskStartedInfo: Codable, Equatable {
    enum CodingKeys: String, CodingKey {
        case taskID = "id"
        case targetID
