-record(message, { message_id :: integer(), message_thread_id :: gleam@option:option(integer()), direct_messages_topic :: gleam@option:option(telega@model@types:direct_messages_topic()), from :: gleam@option:option(telega@model@types:user()), sender_chat :: gleam@option:option(telega@model@types:chat()), sender_boost_count :: gleam@option:option(integer()), sender_business_bot :: gleam@option:option(telega@model@types:user()), sender_tag :: gleam@option:option(binary()), receiver_user :: gleam@option:option(telega@model@types:user()), ephemeral_message_id :: gleam@option:option(integer()), date :: integer(), guest_query_id :: gleam@option:option(binary()), business_connection_id :: gleam@option:option(binary()), chat :: telega@model@types:chat(), forward_origin :: gleam@option:option(telega@model@types:message_origin()), is_topic_message :: gleam@option:option(boolean()), is_automatic_forward :: gleam@option:option(boolean()), reply_to_message :: gleam@option:option(telega@model@types:message()), external_reply :: gleam@option:option(telega@model@types:external_reply_info()), quote :: gleam@option:option(telega@model@types:text_quote()), reply_to_story :: gleam@option:option(telega@model@types:story()), reply_to_checklist_task_id :: gleam@option:option(integer()), reply_to_poll_option_id :: gleam@option:option(binary()), via_bot :: gleam@option:option(telega@model@types:user()), guest_bot_caller_user :: gleam@option:option(telega@model@types:user()), guest_bot_caller_chat :: gleam@option:option(telega@model@types:chat()), edit_date :: gleam@option:option(integer()), has_protected_content :: gleam@option:option(boolean()), is_from_offline :: gleam@option:option(boolean()), is_paid_post :: gleam@option:option(boolean()), media_group_id :: gleam@option:option(binary()), author_signature :: gleam@option:option(binary()), paid_star_count :: gleam@option:option(integer()), text :: gleam@option:option(binary()), entities :: gleam@option:option(list(telega@model@types:message_entity())), link_preview_options :: gleam@option:option(telega@model@types:link_preview_options()), suggested_post_info :: gleam@option:option(telega@model@types:suggested_post_info()), effect_id :: gleam@option:option(binary()), rich_message :: gleam@option:option(telega@model@types:rich_message()), animation :: gleam@option:option(telega@model@types:animation()), audio :: gleam@option:option(telega@model@types:audio()), document :: gleam@option:option(telega@model@types:document()), live_photo :: gleam@option:option(telega@model@types:live_photo()), paid_media :: gleam@option:option(telega@model@types:paid_media_info()), photo :: gleam@option:option(list(telega@model@types:photo_size())), sticker :: gleam@option:option(telega@model@types:sticker()), story :: gleam@option:option(telega@model@types:story()), video :: gleam@option:option(telega@model@types:video()), video_note :: gleam@option:option(telega@model@types:video_note()), voice :: gleam@option:option(telega@model@types:voice()), caption :: gleam@option:option(binary()), caption_entities :: gleam@option:option(list(telega@model@types:message_entity())), show_caption_above_media :: gleam@option:option(boolean()), has_media_spoiler :: gleam@option:option(boolean()), checklist :: gleam@option:option(telega@model@types:checklist()), contact :: gleam@option:option(telega@model@types:contact()), dice :: gleam@option:option(telega@model@types:dice()), game :: gleam@option:option(telega@model@types:game()), poll :: gleam@option:option(telega@model@types:poll()), venue :: gleam@option:option(telega@model@types:venue()), location :: gleam@option:option(telega@model@types:location()), new_chat_members :: gleam@option:option(list(telega@model@types:user())), left_chat_member :: gleam@option:option(telega@model@types:user()), chat_owner_left :: gleam@option:option(telega@model@types:chat_owner_left()), chat_owner_changed :: gleam@option:option(telega@model@types:chat_owner_changed()), new_chat_title :: gleam@option:option(binary()), new_chat_photo :: gleam@option:option(list(telega@model@types: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@types: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@types:maybe_inaccessible_message()), invoice :: gleam@option:option(telega@model@types:invoice()), successful_payment :: gleam@option:option(telega@model@types:successful_payment()), refunded_payment :: gleam@option:option(telega@model@types:refunded_payment()), users_shared :: gleam@option:option(telega@model@types:users_shared()), chat_shared :: gleam@option:option(telega@model@types:chat_shared()), gift :: gleam@option:option(telega@model@types:gift_info()), unique_gift :: gleam@option:option(telega@model@types:unique_gift_info()), gift_upgrade_sent :: gleam@option:option(telega@model@types:gift_info()), connected_website :: gleam@option:option(binary()), write_access_allowed :: gleam@option:option(telega@model@types:write_access_allowed()), passport_data :: gleam@option:option(telega@model@types:passport_data()), proximity_alert_triggered :: gleam@option:option(telega@model@types:proximity_alert_triggered()), boost_added :: gleam@option:option(telega@model@types:chat_boost_added()), chat_background_set :: gleam@option:option(telega@model@types:chat_background()), checklist_tasks_done :: gleam@option:option(telega@model@types:checklist_tasks_done()), checklist_tasks_added :: gleam@option:option(telega@model@types:checklist_tasks_added()), community_chat_added :: gleam@option:option(telega@model@types:community_chat_added()), community_chat_removed :: gleam@option:option(telega@model@types:community_chat_removed()), direct_message_price_changed :: gleam@option:option(telega@model@types:direct_message_price_changed()), forum_topic_created :: gleam@option:option(telega@model@types:forum_topic_created()), forum_topic_edited :: gleam@option:option(telega@model@types:forum_topic_edited()), forum_topic_closed :: gleam@option:option(telega@model@types:forum_topic_closed()), forum_topic_reopened :: gleam@option:option(telega@model@types:forum_topic_reopened()), general_forum_topic_hidden :: gleam@option:option(telega@model@types:general_forum_topic_hidden()), general_forum_topic_unhidden :: gleam@option:option(telega@model@types:general_forum_topic_unhidden()), giveaway_created :: gleam@option:option(telega@model@types:giveaway_created()), giveaway :: gleam@option:option(telega@model@types:giveaway()), giveaway_winners :: gleam@option:option(telega@model@types:giveaway_winners()), giveaway_completed :: gleam@option:option(telega@model@types:giveaway_completed()), managed_bot_created :: gleam@option:option(telega@model@types:managed_bot_created()), paid_message_price_changed :: gleam@option:option(telega@model@types:paid_message_price_changed()), poll_option_added :: gleam@option:option(telega@model@types:poll_option_added()), poll_option_deleted :: gleam@option:option(telega@model@types:poll_option_deleted()), suggested_post_approved :: gleam@option:option(telega@model@types:suggested_post_approved()), suggested_post_approval_failed :: gleam@option:option(telega@model@types:suggested_post_approval_failed()), suggested_post_declined :: gleam@option:option(telega@model@types:suggested_post_declined()), suggested_post_paid :: gleam@option:option(telega@model@types:suggested_post_paid()), suggested_post_refunded :: gleam@option:option(telega@model@types:suggested_post_refunded()), video_chat_scheduled :: gleam@option:option(telega@model@types:video_chat_scheduled()), video_chat_started :: gleam@option:option(telega@model@types:video_chat_started()), video_chat_ended :: gleam@option:option(telega@model@types:video_chat_ended()), video_chat_participants_invited :: gleam@option:option(telega@model@types:video_chat_participants_invited()), web_app_data :: gleam@option:option(telega@model@types:web_app_data()), reply_markup :: gleam@option:option(telega@model@types:inline_keyboard_markup()) }).