While working on AstroBot, I wanted to make its code chat api independent, because I was not sure if I want the same bot to be available on other platforms too (like Slack, Matrix, …). To allow the same code to run on any chat api, I designed AwesomeChatBot.
AwesomeChatBot by itself only contains all the abstractions and some basic logic to handle commands. The discord api part is implemented in AwesomeChatBot.Discord
In the same way it is easily possible to create api wrappers for AwesomeChatBot for other chat app apis.
The source code can be found here: https://github.com/RononDex/AwesomeChatBot/