Variable ReelsViewerListInputSchemaConst
ReelsViewerListInputSchema: Struct<
{
chaining: optionalKey<
Struct<
{
chainingSessionId: optionalKey<String>;
mediaPctWatched: optionalKey<Union<readonly [Number, String]>>;
rankingSessionId: optionalKey<String>;
},
>,
>;
index: Number;
reels: $Array<
Struct<
{
code: String;
id: String;
media_type: Number;
organic_tracking_token: optionalKey<String>;
pk: decodeTo<String, Union<readonly [Number, String]>, never, never>;
taken_at: optionalKey<Number>;
user: optionalKey<
Struct<
{
id: optionalKey<String>;
pk: optionalKey<decodeTo<String, Union<(...)>, never, never>>;
},
>,
>;
video_duration: optionalKey<Number>;
},
>,
>;
},
> = ...
The viewer opened on a list of reels (the profile's Reels tab): the reels it shows, the tapped one's index and — when the caller knows them — the session values of the viewer it opens. Its first page is that list — from the tapped reel forward, the feed swiping forward only — and no stream request goes out.
The chaining is the viewer session's, one value for the whole viewer, not a copy per entry: the two session ids belong to the session the viewer begins, and the per-reel facts are derived where they are needed (the seed is the tapped reel's container id, the positions its index in the list). A caller that declares no session ids gets the viewer's own minted ones, so the like and the comment always name a session the app began (
chaining_session_idis never null) — the app sends it on every like and every comment.