For the moment I’ve left the Mention object intact and have added a MentionBech32 that represents all the different Bech32 entities, but it might be easier to turn all inline mentions into Mention blocks without an index for now. Depends on how you feel about it. Don’t want to add too much complexity to your codebase :)
Created a PR on Damus to start extending support for NIP-27 (#[0], arthurfrance, #[1])
It adds the necessary parsing code to detect nostr: bech32 entities and represent them as regular mentions. nostr:naddr and nostr:nrelay get parsed but don’t have any special UI as of yet.
With this functionality, DMs are one step away from not leaking mentions any longer. Instead of converting mentions to #[idx] they could be converted to nostr:npub… and not added to the tags field.
Any feedback is welcomed!
https://github.com/damus-io/damus/pull/837
#[2] 
Discussion
Cleaned it up a bunch to leave the Swift portion of the codebase as simple as possible. Added the commit to the PR!