nip46 spec says that nip04_decrypt returns [plaintext], and that's what ndk's nip46 backend does, not sure what the reasoning is. It's been there from the start, might have been a typo.
I will add describe soon and get_relays later. Also, wdyt of a new get_nip04_key method to let apps request a nip04 shared key to avoid RPC when decrypting lots of DMs? https://github.com/vitorpamplona/amethyst/issues/592#issuecomment-1840775927