type snowflake = abstract type user = abstract type member = abstract type partial_member = abstract type role = abstract type attachment = abstract type embed = abstract type reaction = abstract type t = { id: snowflake; author: user; channel_id: snowflake; ?member: partial_member option; ?guild_id: snowflake option; content: string; timestamp: string; ?edited_timestamp: string option; tts: bool; mention_everyone: bool; mentions: user list; role_mentions: role list; attachments: attachment list; embeds: embed list; reactions: reaction list; ?nonce: snowflake option; pinned: bool; webhook_id: snowflake; kind : int; }