-record(message, { message_id :: integer(), message_thread_id :: gleam@option:option(integer()), from :: gleam@option:option(telega@model:user()), sender_chat :: gleam@option:option(telega@model:chat()), sender_boost_count :: gleam@option:option(integer()), sender_business_bot :: gleam@option:option(telega@model:user()), date :: integer(), business_connection_id :: gleam@option:option(binary()), chat :: telega@model:chat(), forward_origin :: gleam@option:option(telega@model:message_origin()), is_topic_message :: gleam@option:option(boolean()), is_automatic_forward :: gleam@option:option(boolean()), reply_to_message :: gleam@option:option(telega@model:message()), external_reply :: gleam@option:option(telega@model:external_reply_info()), quote :: gleam@option:option(telega@model:text_quote()), reply_to_story :: gleam@option:option(telega@model:story()), via_bot :: gleam@option:option(telega@model:user()), edit_date :: gleam@option:option(integer()), has_protected_content :: gleam@option:option(boolean()), is_from_offline :: gleam@option:option(boolean()), media_group_id :: gleam@option:option(binary()), author_signature :: gleam@option:option(binary()), text :: gleam@option:option(binary()), entities :: gleam@option:option(list(telega@model:message_entity())), link_preview_options :: gleam@option:option(telega@model:link_preview_options()), effect_id :: gleam@option:option(binary()), animation :: gleam@option:option(telega@model:animation()), audio :: gleam@option:option(telega@model:audio()), document :: gleam@option:option(telega@model:document()), paid_media :: gleam@option:option(telega@model:paid_media_info()), photo :: gleam@option:option(list(telega@model:photo_size())), sticker :: gleam@option:option(telega@model:sticker()), story :: gleam@option:option(telega@model:story()), video :: gleam@option:option(telega@model:video()), video_note :: gleam@option:option(telega@model:video_note()), voice :: gleam@option:option(telega@model:voice()), caption :: gleam@option:option(binary()), caption_entities :: gleam@option:option(list(telega@model:message_entity())), show_caption_above_media :: gleam@option:option(boolean()), has_media_spoiler :: gleam@option:option(boolean()), contact :: gleam@option:option(telega@model:contact()), dice :: gleam@option:option(telega@model:dice()), game :: gleam@option:option(telega@model:game()), poll :: gleam@option:option(telega@model:poll()), venue :: gleam@option:option(telega@model:venue()), location :: gleam@option:option(telega@model:location()), new_chat_members :: gleam@option:option(list(telega@model:user())), left_chat_member :: gleam@option:option(telega@model:user()), new_chat_title :: gleam@option:option(binary()), new_chat_photo :: gleam@option:option(list(telega@model:photo_size())), delete_chat_photo :: gleam@option:option(boolean()), group_chat_created :: gleam@option:option(boolean()), supergroup_chat_created :: gleam@option:option(boolean()), channel_chat_created :: gleam@option:option(boolean()), message_auto_delete_timer_changed :: gleam@option:option(telega@model:message_auto_delete_timer_changed()), migrate_to_chat_id :: gleam@option:option(integer()), migrate_from_chat_id :: gleam@option:option(integer()), pinned_message :: gleam@option:option(telega@model:maybe_inaccessible_message()), invoice :: gleam@option:option(telega@model:invoice()), successful_payment :: gleam@option:option(telega@model:successful_payment()), refunded_payment :: gleam@option:option(telega@model:refunded_payment()), users_shared :: gleam@option:option(telega@model:users_shared()), chat_shared :: gleam@option:option(telega@model:chat_shared()), connected_website :: gleam@option:option(binary()), write_access_allowed :: gleam@option:option(telega@model:write_access_allowed()), passport_data :: gleam@option:option(telega@model:passport_data()), proximity_alert_triggered :: gleam@option:option(telega@model:proximity_alert_triggered()), boost_added :: gleam@option:option(telega@model:chat_boost_added()), chat_background_set :: gleam@option:option(telega@model:chat_background()), forum_topic_created :: gleam@option:option(telega@model:forum_topic_created()), forum_topic_edited :: gleam@option:option(telega@model:forum_topic_edited()), forum_topic_closed :: gleam@option:option(telega@model:forum_topic_closed()), forum_topic_reopened :: gleam@option:option(telega@model:forum_topic_reopened()), general_forum_topic_hidden :: gleam@option:option(telega@model:general_forum_topic_hidden()), general_forum_topic_unhidden :: gleam@option:option(telega@model:general_forum_topic_unhidden()), giveaway_created :: gleam@option:option(telega@model:giveaway_created()), giveaway :: gleam@option:option(telega@model:giveaway()), giveaway_winners :: gleam@option:option(telega@model:giveaway_winners()), giveaway_completed :: gleam@option:option(telega@model:giveaway_completed()), video_chat_scheduled :: gleam@option:option(telega@model:video_chat_scheduled()), video_chat_started :: gleam@option:option(telega@model:video_chat_started()), video_chat_ended :: gleam@option:option(telega@model:video_chat_ended()), video_chat_participants_invited :: gleam@option:option(telega@model:video_chat_participants_invited()), web_app_data :: gleam@option:option(telega@model:web_app_data()), reply_markup :: gleam@option:option(telega@model:inline_keyboard_markup()) }).