All models that contain the same/similar information (e.g: Message and MessageGatewayData) should implement a shared interface (e.g IMessage which would have Content, Id, etc...) so it's easier to pass data types around your own code.
Discord.Net does this. For example: RestMessage and SocketMessage both implement IMessage, so you could take IMessage as a parameter in a method that you'd make that (for example) stores it in your database to use for logging later on if that message changes.
All models that contain the same/similar information (e.g:
MessageandMessageGatewayData) should implement a shared interface (e.gIMessagewhich would haveContent,Id, etc...) so it's easier to pass data types around your own code.Discord.Net does this. For example:
RestMessageandSocketMessageboth implementIMessage, so you could takeIMessageas a parameter in a method that you'd make that (for example) stores it in your database to use for logging later on if that message changes.