Behaviour implemented by platform adapters.
A real Twitch, YouTube, or Kick integration belongs behind this behaviour.
Adapters receive normalized GelotvBot.Target and GelotvBot.Message
structs so the dispatch, supervision, metadata, and rate-limit layers stay
platform-neutral.
Summary
Types
@type result() :: :ok | {:ok, term()} | {:error, term()} | {:error, :rate_limited | {:rate_limited, non_neg_integer()} | :timeout | {:temporary, term()}}
Callbacks
@callback send_message(GelotvBot.Target.t(), GelotvBot.Message.t(), keyword()) :: result()