One piece of advice: Regardless how you do your bridging, I advice to abandon "the holy grail" of single-account-and-app-for-all-your-chat-networks, at least initially.
What I mean by this is that if you bridge using Matrix while also chat using Matrix, to set up two accounts: one for all your bridged chats (fine to mix networks here) and one for all your actual Matrix usage. Bridge chat state can get messy in some cases and keeping it separate keeps your public account and state db "clean".
Preferably I would have a server laying in between my clients and bridges. When sending a message, I would select one of the available identities. Let's say for example that I would want to contact somebody on discord, on my client I would select him as the recipient and choose one of the available identities. XMPP seems nice in this architecture
What I mean by this is that if you bridge using Matrix while also chat using Matrix, to set up two accounts: one for all your bridged chats (fine to mix networks here) and one for all your actual Matrix usage. Bridge chat state can get messy in some cases and keeping it separate keeps your public account and state db "clean".