pub async fn publish_message<T: Transport + ?Sized>(
transport: &T,
community: &Community,
channel: &Channel,
author: &Keys,
content: &str,
ms: u64,
) -> Result<(Event, Keys), String>Expand description
Seal content and publish it to the Community’s relays.
Returns the published outer event AND its retained ephemeral signing key.
The key is one-time on the wire (no persistent author↔channel linkage), but
the sender keeps it so they can later delete_own_message their own message
Persist it (see db::community::store_message_key) — exactly like Vector’s
nip17_wrap_keys for DMs. Discarding it just means that message can’t be deleted.