Criar estrutura codificável com tipo genérico

Primeiro de tudo, desculpe pelo título pouco claro da pergunta

Estou fazendo uma estrutura codificável que será usada como mensagem json.

enum MessageType: String, Codable{
    case content
    case request
    case response
}

struct Message: Codable{
    var type: MessageType
    var content: /* NEED HELP HERE */
}

struct Content: Codable {...}
struct Request: Codable {...}
struct Response: Codable {...}

Ao declararMessage, se étype écontent, EstácontentO tipo deContent.

let message = Message(
    type: .content,
    content: Content( ... )
}

Quandotype érequest, EstácontentO tipo deRequest.

let message = Message(
    type: .request,
    content: Request( ... )
}

Então, como devo definircontent tipo de propriedade?

Eu tentei fazê-lo comoString assim:

struct Message: Codable{
    var type: MessageType
    var content: String
}

struct Content: Codable{
    var jsonString: String{
        return String(data: try! JSONEncoder().encode(self), encoding: .utf8)
    }
}

let foo = Message(
    var type: .content,
    var content: Content ( ... ).jsonString
)

e eu poderia usá-lo, mas estou ciente de usá-lo em diferentes plataformas como o Android, então quero ter uma maneira mais inteligente de lidar com isso.

questionAnswers(2)

yourAnswerToTheQuestion