IGPAPI
    Preparing search index...

    Variable DirectThreadMessageSchemaConst

    DirectThreadMessageSchema: Struct<
        {
            item_id: String;
            item_type: String;
            media: optionalKey<
                Union<
                    readonly [
                        Struct<
                            {
                                height: Number;
                                media_type: Literal<1>;
                                pk: String;
                                url: String;
                                width: Number;
                            },
                        >,
                        Struct<
                            {
                                height: Number;
                                media_type: Literal<2>;
                                pk: String;
                                url: String;
                                width: Number;
                            },
                        >,
                        Struct<
                            {
                                media_type: Literal<8>;
                                pk: String;
                                slides: $Array<
                                    Struct<{ media_type: Union<(...)>; pk: String; url: String }>,
                                >;
                            },
                        >,
                    ],
                >,
            >;
            send_attribution: optionalKey<String>;
            text: optionalKey<String>;
            thread_id: String;
            timestamp: String;
            user_id: String;
        },
    > = ...

    One message as a thread lists it. The entry carries what the message's own react sends — the conversation's broadcast thread id and the visit's attribution — so the item reads the thread context from the entry it is shown from, as a feed's items carry the feed's context. A composer shows no messages, so an entry always belongs to an existing conversation.