# Lingo v0.4.2 - Table of Contents

An Elixir library for interacting with the Discord API

## Pages

- [Lingo](readme.md)

## Modules

- [Lingo](Lingo.md): A Discord library: the gateway, the REST API, interactions and voice.

- Bots
  - [Lingo.Bot](Lingo.Bot.md): The behaviour for your bot module.
  - [Lingo.Bot.Commands](Lingo.Bot.Commands.md): Declaring application commands, imported by `use Lingo.Bot`. Each declared
command is handled in `c:Lingo.Bot.handle_command/2`.

  - [Lingo.Bot.Options](Lingo.Bot.Options.md): Builders for application command options, imported by `use Lingo.Bot`.
  - [Lingo.CheckError](Lingo.CheckError.md): A command that didn't pass one of its `:checks`, or is on cooldown (see
`Lingo.Bot.Commands.command/3`).
  - [Lingo.Collector](Lingo.Collector.md): Waiting for button clicks and reactions inline, instead of in a separate
callback.
  - [Lingo.Context](Lingo.Context.md): An interaction your bot is handling: a slash or context menu command, a
component click, a modal submission or an autocomplete request.
  - [Lingo.Error](Lingo.Error.md): A failed Discord API call.
  - [Lingo.EventError](Lingo.EventError.md): An event Lingo couldn't build a payload for, such as one whose shape
Discord changed. It never reaches `c:Lingo.Bot.handle_event/2`, whose
clauses expect the parsed payload; `c:Lingo.Bot.handle_error/2` gets this
error with `{event, data}`, Discord's raw data with string keys.
  - [Lingo.Testing](Lingo.Testing.md): Testing a bot without Discord: interactions and events go through the
bot's real callbacks, checks and collectors, and every API call it makes is
recorded instead of sent.

- HTTP and OAuth2
  - [Lingo.Endpoint](Lingo.Endpoint.md): Receiving interactions and webhook events over HTTP, instead of (or next
to) the gateway.
  - [Lingo.OAuth2](Lingo.OAuth2.md): OAuth2: sending users to authorize the app, trading the code for their
token, and calling the API as them (their profile, guilds and guild
memberships, connections and linked role data).

- REST API
  - [Lingo.Api](Lingo.Api.md): Discord's REST API, one module per resource: `Lingo.Api.Message`,
`Lingo.Api.Guild`, `Lingo.Api.Member`...
  - [Lingo.Api.Application](Lingo.Api.Application.md): The bot's application, its Activity instances and its role connection metadata.
  - [Lingo.Api.AuditLog](Lingo.Api.AuditLog.md): Guild audit logs.
  - [Lingo.Api.AutoModeration](Lingo.Api.AutoModeration.md): Auto moderation rules.
  - [Lingo.Api.Ban](Lingo.Api.Ban.md): Guild bans.
  - [Lingo.Api.Channel](Lingo.Api.Channel.md): Channels: settings, permission overwrites, pins, invites and typing.
  - [Lingo.Api.Command](Lingo.Api.Command.md): Application commands, global and per guild. Bots usually declare commands with `Lingo.Bot.Commands` and register them with `Lingo.register_commands/1` instead.
  - [Lingo.Api.Emoji](Lingo.Api.Emoji.md): Guild emojis and the application's own emojis.
  - [Lingo.Api.Entitlement](Lingo.Api.Entitlement.md): Entitlements: who has access to the application's SKUs.
  - [Lingo.Api.Guild](Lingo.Api.Guild.md): Guilds: settings, channels, integrations, widgets, onboarding and pruning.
  - [Lingo.Api.Interaction](Lingo.Api.Interaction.md): Interaction responses and follow-ups.
  - [Lingo.Api.Invite](Lingo.Api.Invite.md): Invites, including restricting them to target users.
  - [Lingo.Api.Lobby](Lingo.Api.Lobby.md): Lobbies: groups of players for Discord's Social SDK, which a bot can create
and manage, and link to a guild text channel.
  - [Lingo.Api.Member](Lingo.Api.Member.md): Guild members: fetching, editing, roles and kicks.
  - [Lingo.Api.Message](Lingo.Api.Message.md): Messages: sending, forwarding, editing, deleting, bulk deletion and search.
  - [Lingo.Api.Poll](Lingo.Api.Poll.md): Polls.
  - [Lingo.Api.Reaction](Lingo.Api.Reaction.md): Message reactions. Emojis are unicode characters or `name:id` for custom ones.
  - [Lingo.Api.Role](Lingo.Api.Role.md): Guild roles.
  - [Lingo.Api.SKU](Lingo.Api.SKU.md): SKUs and their subscriptions.
  - [Lingo.Api.ScheduledEvent](Lingo.Api.ScheduledEvent.md): Guild scheduled events.
  - [Lingo.Api.Soundboard](Lingo.Api.Soundboard.md): Soundboard sounds.
  - [Lingo.Api.StageInstance](Lingo.Api.StageInstance.md): Stage instances: live stages in stage channels.
  - [Lingo.Api.Sticker](Lingo.Api.Sticker.md): Stickers and sticker packs.
  - [Lingo.Api.Template](Lingo.Api.Template.md): Guild templates.
  - [Lingo.Api.Thread](Lingo.Api.Thread.md): Threads and forum posts.
  - [Lingo.Api.User](Lingo.Api.User.md): Users, the bot's own user, its guilds and DMs.
  - [Lingo.Api.Voice](Lingo.Api.Voice.md): Voice regions and voice states. To join voice channels, see `Lingo.Voice`.
  - [Lingo.Api.Webhook](Lingo.Api.Webhook.md): Webhooks and the messages they send.

- Cache
  - [Lingo.Cache](Lingo.Cache.md): What the gateway and REST API have told the bot, read from ETS: cheap, and
never contacting Discord. Each resource has a module, mirroring `Lingo.Api`
  - [Lingo.Cache.Channel](Lingo.Cache.Channel.md): Cached channels, threads and DMs. See `Lingo.Cache` for enabling and configuring the cache.
  - [Lingo.Cache.Guild](Lingo.Cache.Guild.md): Cached guilds. See `Lingo.Cache` for enabling and configuring the cache.
  - [Lingo.Cache.Member](Lingo.Cache.Member.md): Cached guild members. See `Lingo.Cache` for enabling and configuring the cache.
  - [Lingo.Cache.Message](Lingo.Cache.Message.md): Recent messages. See `Lingo.Cache` for enabling and configuring the cache.
  - [Lingo.Cache.Presence](Lingo.Cache.Presence.md): Cached presences. See `Lingo.Cache` for enabling and configuring the cache.
  - [Lingo.Cache.Role](Lingo.Cache.Role.md): Cached roles. See `Lingo.Cache` for enabling and configuring the cache.
  - [Lingo.Cache.User](Lingo.Cache.User.md): Cached users. See `Lingo.Cache` for enabling and configuring the cache.
  - [Lingo.Cache.VoiceState](Lingo.Cache.VoiceState.md): Cached voice states: who is in which voice channel. See `Lingo.Cache` for enabling and configuring the cache.

- Events
  - [Lingo.Event](Lingo.Event.md): The events `c:Lingo.Bot.handle_event/2` receives: every one Discord sends,
named as Discord names it, lowercased.
  - [Lingo.Event.ApplicationAuthorized](Lingo.Event.ApplicationAuthorized.md): The payload of the `:application_authorized` webhook event: a user added
the application to a guild (`integration_type: :guild`, with `guild`) or
to their account (`:user`).

  - [Lingo.Event.ApplicationDeauthorized](Lingo.Event.ApplicationDeauthorized.md): The payload of the `:application_deauthorized` webhook event: a user
removed the application from their account.

  - [Lingo.Event.AutoModerationAction](Lingo.Event.AutoModerationAction.md): The payload of `:auto_moderation_action_execution`: an auto moderation
rule acted on a message or member.
  - [Lingo.Event.ChannelInfo](Lingo.Event.ChannelInfo.md): The payload of `:channel_info`, the answer to
`Lingo.Gateway.request_channel_info/2`: the requested fields of a guild's
channels, such as voice channel statuses.

  - [Lingo.Event.ChannelPinsUpdate](Lingo.Event.ChannelPinsUpdate.md): The payload of `:channel_pins_update`: a message was pinned or unpinned.
It's not sent when a pinned message is deleted.

  - [Lingo.Event.GuildBan](Lingo.Event.GuildBan.md): The payload of `:guild_ban_add` and `:guild_ban_remove`.
  - [Lingo.Event.GuildDelete](Lingo.Event.GuildDelete.md): The payload of `:guild_delete`. `unavailable` is `true` when the guild is
down in an outage (it comes back with a `:guild_create`), and `false` when
the bot left or was removed. `old` is the guild as cached, or `nil`.

  - [Lingo.Event.GuildEmojisUpdate](Lingo.Event.GuildEmojisUpdate.md): The payload of `:guild_emojis_update`: a guild's full emoji list after a
change. `old` is the list as cached, or `nil` when the guild isn't cached.

  - [Lingo.Event.GuildIntegrationsUpdate](Lingo.Event.GuildIntegrationsUpdate.md): The payload of `:guild_integrations_update`: a guild's integrations changed.
  - [Lingo.Event.GuildMemberRemove](Lingo.Event.GuildMemberRemove.md): The payload of `:guild_member_remove`: a user left, or was kicked or
banned. `old` is the member as cached, or `nil`.

  - [Lingo.Event.GuildMembersChunk](Lingo.Event.GuildMembersChunk.md): The payload of `:guild_members_chunk`: one part of the answer to
`Lingo.Gateway.request_guild_members/2`, numbered by `chunk_index` out of
`chunk_count`. `not_found` lists the requested user ids that aren't
members; `nonce` is the request's.

  - [Lingo.Event.GuildRoleDelete](Lingo.Event.GuildRoleDelete.md): The payload of `:guild_role_delete`. `old` is the role as cached, or `nil`.
  - [Lingo.Event.GuildStickersUpdate](Lingo.Event.GuildStickersUpdate.md): The payload of `:guild_stickers_update`: a guild's full sticker list after
a change. `old` is the list as cached, or `nil` when the guild isn't cached.

  - [Lingo.Event.IntegrationDelete](Lingo.Event.IntegrationDelete.md): The payload of `:integration_delete`. `application_id` is set when the
integration was a bot or OAuth2 application.

  - [Lingo.Event.InviteDelete](Lingo.Event.InviteDelete.md): The payload of `:invite_delete`.
  - [Lingo.Event.LobbyMessageDelete](Lingo.Event.LobbyMessageDelete.md): The payload of the `:lobby_message_delete` webhook event.
  - [Lingo.Event.MessageDelete](Lingo.Event.MessageDelete.md): The payload of `:message_delete`. `old` is the message as cached, or `nil`.
  - [Lingo.Event.MessageDeleteBulk](Lingo.Event.MessageDeleteBulk.md): The payload of `:message_delete_bulk`: several messages deleted at once.
`old` holds those of them that were cached.

  - [Lingo.Event.PollVote](Lingo.Event.PollVote.md): The payload of `:message_poll_vote_add` and `:message_poll_vote_remove`.
  - [Lingo.Event.RateLimited](Lingo.Event.RateLimited.md): The payload of `:rate_limited`: Discord refused a gateway request, such as
`Lingo.Gateway.request_guild_members/2`, for `retry_after` ms.
  - [Lingo.Event.Reaction](Lingo.Event.Reaction.md): The payload of `:message_reaction_add`, `:message_reaction_remove` and
`:message_reaction_remove_emoji` (which has no `user_id` or `member`).
`burst` marks super reactions.

  - [Lingo.Event.ReactionRemoveAll](Lingo.Event.ReactionRemoveAll.md): The payload of `:message_reaction_remove_all`: every reaction on a message was removed.
  - [Lingo.Event.Ready](Lingo.Event.Ready.md): The payload of `:ready`: a shard started a new session.
  - [Lingo.Event.Resumed](Lingo.Event.Resumed.md): The payload of `:resumed`: a shard reconnected and resumed its session,
replaying the events it missed.

  - [Lingo.Event.ScheduledEventUser](Lingo.Event.ScheduledEventUser.md): The payload of `:guild_scheduled_event_user_add` and
`:guild_scheduled_event_user_remove`: a user subscribed to a scheduled
event, or stopped.

  - [Lingo.Event.SoundboardSoundDelete](Lingo.Event.SoundboardSoundDelete.md): The payload of `:guild_soundboard_sound_delete`.
  - [Lingo.Event.SoundboardSounds](Lingo.Event.SoundboardSounds.md): The payload of `:guild_soundboard_sounds_update` (several of a guild's
sounds changed at once) and `:soundboard_sounds` (the answer to
`Lingo.Gateway.request_soundboard_sounds/1`).

  - [Lingo.Event.ThreadDelete](Lingo.Event.ThreadDelete.md): The payload of `:thread_delete`. Discord sends only the thread's ids and
type; `old` is the thread as cached, or `nil`.

  - [Lingo.Event.ThreadListSync](Lingo.Event.ThreadListSync.md): The payload of `:thread_list_sync`: the active threads of a guild, or of
some of its channels (`channel_ids`, `nil` for the whole guild), sent when
the bot gains access to them. `members` are the bot's own memberships.

  - [Lingo.Event.ThreadMembersUpdate](Lingo.Event.ThreadMembersUpdate.md): The payload of `:thread_members_update`: users were added to or removed
from a thread. `id` is the thread's; `member_count` stops at 50.

  - [Lingo.Event.TypingStart](Lingo.Event.TypingStart.md): The payload of `:typing_start`. `member` is set in guilds.
  - [Lingo.Event.Unknown](Lingo.Event.Unknown.md): The payload of `:unknown`: an event Lingo doesn't know yet. `type` is
Discord's name for it, such as `"GUILD_SOMETHING_NEW"`, and `data` its
payload as Discord sent it, with string keys.

  - [Lingo.Event.VoiceChannelEffect](Lingo.Event.VoiceChannelEffect.md): The payload of `:voice_channel_effect_send`: someone sent an emoji
reaction or a soundboard sound in a voice channel the bot is in.
`animation_type` is `:premium` or `:basic`; `sound_id` is a snowflake for
guild sounds and an integer for Discord's default ones.

  - [Lingo.Event.VoiceChannelStartTime](Lingo.Event.VoiceChannelStartTime.md): The payload of `:voice_channel_start_time_update`: when a voice channel's
current call started, or `nil` once it's empty. `id` is the channel's.

  - [Lingo.Event.VoiceChannelStatus](Lingo.Event.VoiceChannelStatus.md): The payload of `:voice_channel_status_update`. `id` is the channel's.
  - [Lingo.Event.WebhooksUpdate](Lingo.Event.WebhooksUpdate.md): The payload of `:webhooks_update`: a channel's webhooks changed.

- Gateway
  - [Lingo.Gateway](Lingo.Gateway.md): The bot's gateway connection: presence, requests sent over the gateway,
and its shards.
  - [Lingo.Gateway.SessionStore](Lingo.Gateway.SessionStore.md): Keeps gateway sessions across restarts of the whole bot, so a redeployed
bot resumes its shards instead of identifying them again.
  - [Lingo.Gateway.SessionStore.File](Lingo.Gateway.SessionStore.File.md): A `Lingo.Gateway.SessionStore` that keeps sessions in a local file, for a
bot that restarts on the same machine.

- Voice
  - [Lingo.Voice](Lingo.Voice.md): Voice: joining channels, playing audio and receiving it.
  - [Lingo.Voice.Connection](Lingo.Voice.Connection.md): A connection to a Discord voice server (voice gateway v8): one per guild.
  - [Lingo.Voice.FFmpeg](Lingo.Voice.FFmpeg.md): Plays anything ffmpeg can read: it transcodes the input to Ogg Opus in an
external `ffmpeg` process and streams the Opus packets out of its output.
  - [Lingo.Voice.Ogg](Lingo.Voice.Ogg.md): Reads Opus packets out of Ogg Opus audio (RFC 3533, RFC 7845).
  - [Lingo.Voice.WebM](Lingo.Voice.WebM.md): Reads Opus packets out of WebM and Matroska audio, the container YouTube and
most streaming sites serve Opus in.

- Message content
  - [Lingo.Component](Lingo.Component.md): Builders for message components: buttons and select menus. They return the
maps Discord expects.
  - [Lingo.Component.Layout](Lingo.Component.Layout.md): Builders for components v2: text, images, files and containers laid out
in the message itself. Messages using them need the `Lingo.Component.v2_flag/0`
flag and can't have `:content` or `:embeds`.
  - [Lingo.Component.Modal](Lingo.Component.Modal.md): Builders for modals and their inputs. Open one with
`Lingo.Context.show_modal/2`; the submission reaches
`c:Lingo.Bot.handle_modal/2`, with field values keyed by custom id.
  - [Lingo.Embed](Lingo.Embed.md): Builds message embeds.
  - [Lingo.Poll](Lingo.Poll.md): Builds message polls.

- Utilities
  - [Lingo.CDN](Lingo.CDN.md): URLs for images on Discord's CDN.
  - [Lingo.Flags](Lingo.Flags.md): Flag bitfields other than permissions (see `Lingo.Permissions`).
  - [Lingo.Format](Lingo.Format.md): Markdown for mentions, emojis and timestamps (rendered in each reader's locale), escaping, and message links.
  - [Lingo.Helper.Channel](Lingo.Helper.Channel.md): What the bot can do in a channel.
  - [Lingo.Helper.Member](Lingo.Helper.Member.md): What the bot can do to a member, and how members are shown.
  - [Lingo.Helper.Role](Lingo.Helper.Role.md): Whether the bot can manage a role, and how roles rank.
  - [Lingo.Permissions](Lingo.Permissions.md): Permission bitfields.
  - [Lingo.Snowflake](Lingo.Snowflake.md): Discord ids ("snowflakes"). Lingo keeps them as strings, as Discord sends
them; they encode their creation time.

  - [Lingo.Telemetry](Lingo.Telemetry.md): Telemetry events Lingo emits, for metrics and alerts: what happens inside
Lingo, as opposed to the Discord events a bot handles (see `Lingo.Event`).

- Types
  - [Lingo.Type.AccessToken](Lingo.Type.AccessToken.md): An OAuth2 token, from `Lingo.OAuth2`. `expires_at` is when it stops
working, counted from when Discord answered; refresh it with
`Lingo.OAuth2.refresh/2` before then. The client credentials grant gives
no `refresh_token`.

  - [Lingo.Type.Activity](Lingo.Type.Activity.md): What a user is doing: playing, streaming, listening, watching, a custom status or competing.
  - [Lingo.Type.ActivityInstance](Lingo.Type.ActivityInstance.md): A running instance of the app's Activity, from
`Lingo.Api.Application.get_activity_instance/1`. `users` are the ids of
the users in it; `location` says where it runs, with `kind`
`:guild_channel` or `:private_channel` (a DM or group DM).

  - [Lingo.Type.Application](Lingo.Type.Application.md): An application: the bot's own, from `Lingo.Api.Application.get_current/0`,
or a partial one inside messages, attachments and invites.
  - [Lingo.Type.ApplicationCommand](Lingo.Type.ApplicationCommand.md): An application command, as declared with `Lingo.Bot.Commands.command/3` or returned by Discord.
  - [Lingo.Type.Attachment](Lingo.Type.Attachment.md): A file attached to a message.
  - [Lingo.Type.AuditLog](Lingo.Type.AuditLog.md): A guild's audit log, from `Lingo.Api.AuditLog.get/2`: its entries and the
commands, rules, events, integrations, threads, users and webhooks they
refer to. Integrations are partial.

  - [Lingo.Type.AuditLogEntry](Lingo.Type.AuditLogEntry.md): One audit log entry. Also the payload of `:guild_audit_log_entry_create` events.
  - [Lingo.Type.AutoModerationRule](Lingo.Type.AutoModerationRule.md): An auto moderation rule.
  - [Lingo.Type.Ban](Lingo.Type.Ban.md): A guild ban: the banned user and the reason.
  - [Lingo.Type.Channel](Lingo.Type.Channel.md): A guild channel, thread, DM or group DM.
  - [Lingo.Type.CommandOption](Lingo.Type.CommandOption.md): An application command option, built with `Lingo.Bot.Options`.
  - [Lingo.Type.CommandPermissions](Lingo.Type.CommandPermissions.md): The permissions of one command in a guild: which roles, users and channels
may use it.
  - [Lingo.Type.Connection](Lingo.Type.Connection.md): An account a user connected to Discord (`connections` OAuth2 scope):
`type` is the service, such as `"github"` or `"steam"`, and `name` the
account's name there. `integrations` are partial guild integrations.

  - [Lingo.Type.Embed](Lingo.Type.Embed.md): A message embed. Build one with `Lingo.Embed.build/1`.
  - [Lingo.Type.Emoji](Lingo.Type.Emoji.md): A custom or unicode emoji.
  - [Lingo.Type.Entitlement](Lingo.Type.Entitlement.md): An entitlement: a user's or guild's access to a SKU.
  - [Lingo.Type.Guild](Lingo.Type.Guild.md): A guild (server).
  - [Lingo.Type.GuildTemplate](Lingo.Type.GuildTemplate.md): A guild template.
  - [Lingo.Type.GuildWidget](Lingo.Type.GuildWidget.md): A guild's public widget, from `Lingo.Api.Guild.get_widget/1`: the voice
and stage channels open to @everyone, and up to 100 online members.
  - [Lingo.Type.IncidentsData](Lingo.Type.IncidentsData.md): A guild's incident actions and detections: until when invites and DMs are
paused (see `Lingo.Api.Guild.update_incident_actions/2`), and when Discord
last detected DM spam or a raid.

  - [Lingo.Type.Integration](Lingo.Type.Integration.md): A guild integration: a bot, or a Twitch, YouTube or other connection.
  - [Lingo.Type.Interaction](Lingo.Type.Interaction.md): A raw interaction. Bot callbacks get a `Lingo.Context` instead, which wraps it.
  - [Lingo.Type.Invite](Lingo.Type.Invite.md): An invite to a guild or group DM.
  - [Lingo.Type.Lobby](Lingo.Type.Lobby.md): A Social SDK lobby: a group of players. `metadata` is the string map the
lobby was given; `linked_channel` is the guild text channel it's linked to,
if any.

  - [Lingo.Type.LobbyMember](Lingo.Type.LobbyMember.md): A member of a `Lingo.Type.Lobby`. `id` is the user's id and
`additional_name` an extra display name, such as an in-game character's;
`can_link_lobby?/1` says whether they may link the lobby to a channel.

  - [Lingo.Type.LobbyMessage](Lingo.Type.LobbyMessage.md): A message sent in a Social SDK lobby. `metadata` is the string map the
sender attached and `moderation_metadata` the one set with
`Lingo.Api.Lobby.update_moderation_metadata/3`; `lobby_member` holds the
author's `additional_name` when they had one. `timestamp` and
`edited_timestamp` come with updates.

  - [Lingo.Type.Member](Lingo.Type.Member.md): A guild member: the user plus their nickname, roles and guild-specific state.
  - [Lingo.Type.Message](Lingo.Type.Message.md): A message.
  - [Lingo.Type.Onboarding](Lingo.Type.Onboarding.md): A guild's onboarding: the questions (`prompts`) new members answer and the
channels they get by default.
  - [Lingo.Type.Overwrite](Lingo.Type.Overwrite.md): A permission overwrite on a channel, for a `:role` or a `:member`.
  - [Lingo.Type.Poll](Lingo.Type.Poll.md): A message's poll. Build one to send with `Lingo.Poll.build/3`.
  - [Lingo.Type.Presence](Lingo.Type.Presence.md): A member's status and activities.
  - [Lingo.Type.Reaction](Lingo.Type.Reaction.md): The reactions with one emoji on a message.
  - [Lingo.Type.Role](Lingo.Type.Role.md): A guild role.
  - [Lingo.Type.RoleConnectionMetadata](Lingo.Type.RoleConnectionMetadata.md): One of the application's role connection metadata records: a value users
carry (see `Lingo.OAuth2.update_role_connection/3`) that guilds compare
against to grant linked roles.
  - [Lingo.Type.SKU](Lingo.Type.SKU.md): Something the application sells. `type` is `:durable`, `:consumable`,
`:subscription` or `:subscription_group` (the group Discord makes for a
subscription; list its subscriptions with the `:subscription` one).

  - [Lingo.Type.ScheduledEvent](Lingo.Type.ScheduledEvent.md): A guild scheduled event.
  - [Lingo.Type.SoundboardSound](Lingo.Type.SoundboardSound.md): A soundboard sound. Discord's default sounds have no `guild_id`; a sound
that isn't `available` belongs to a guild that lost the boosts it needs.

  - [Lingo.Type.StageInstance](Lingo.Type.StageInstance.md): A live stage in a stage channel.
  - [Lingo.Type.Sticker](Lingo.Type.Sticker.md): A sticker.
  - [Lingo.Type.StickerPack](Lingo.Type.StickerPack.md): A pack of Discord's standard stickers.
  - [Lingo.Type.Subscription](Lingo.Type.Subscription.md): A user's subscription to one of the application's SKUs. `status` is
`:active`, `:ending` (canceled, active until `current_period_end`) or
`:inactive`.

  - [Lingo.Type.ThreadMember](Lingo.Type.ThreadMember.md): A user's membership in a thread.
  - [Lingo.Type.User](Lingo.Type.User.md): A Discord user.
  - [Lingo.Type.VoiceRegion](Lingo.Type.VoiceRegion.md): A voice region, whose `id` can be a voice or stage channel's `rtc_region`.
`optimal` marks the closest one; avoid `deprecated` ones.

  - [Lingo.Type.VoiceState](Lingo.Type.VoiceState.md): A user's voice connection state in a guild.
  - [Lingo.Type.Webhook](Lingo.Type.Webhook.md): A webhook.
  - [Lingo.Type.WelcomeScreen](Lingo.Type.WelcomeScreen.md): The screen a community guild shows new members: its `description` and up
to 5 `welcome_channels`, maps with atom keys.

