Lean, consistent Amarula facade with no protocol types leaked. All breaking
changes are mechanical (rename or swap two args); behaviour is unchanged.
Renames:
Address.to_wire/to_wire! -> to_jid/to_jid! (now accept string or Address)
fetch_status -> fetch_profile_status
presence_subscribe -> subscribe_presence
group_setting -> group_update_setting
group_ephemeral -> group_toggle_ephemeral
Argument order (jid now always follows conn, matching every other send),
threaded through facade, Connection, GenServer tuples, handlers and callers:
mark_read(conn, ids, jid, ...) -> mark_read(conn, jid, ids, ...)
send_media(conn, type, jid, ...) -> send_media(conn, jid, type, ...)
Removed from the facade (kept on their underlying modules for power users):
send_message/3 (raw %Proto.Message{} leak), request_resend/2, resolve_lid/2,
normalize_jid/2 (was canonical_jid).
group_requests/2 now returns clean [%{jid: Address, requested_at: int}] instead
of raw string-keyed wire attrs.
Docs: dropped "wire jid" / "boundary" / "total" / "canonical" jargon for plain
language across the consumer-facing API.
See CHANGELOG.md for the full migration table.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>