Mints a single-use, passwordless registration token per recipient, pinned to
their address and optionally to a username, and schedules the invite emails.
The links are only ever mailed to the recipients, so the response carries a
count rather than the tokens.
Minting moves out of the queue and into the caller so a username that is
already taken is refused up front, rather than emailed out as a link nobody
can register with. That leaves the fan-out job with nothing to do, so
`SendRoomInviteEmailsJob` goes away and `SendRoomInviteEmailJob` carries the
token: it takes both the address and the invite link from it, which replaces
the `matrix.to` stub and keeps the link and its recipient together.
`manage send-room-invites` and the endpoint share the minting through
`mas_storage::room_invite`.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Schedules a `SendRoomInviteEmailsJob` from the command line, so the room
invite emails can be triggered by hand without an API caller. A worker has
to be running to actually send them.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>