InternalOptional ReadonlychainingPosition?: string | numberZero-based position in the chaining session.
Optional ReadonlychainingSeedMediaId?: stringSeed media id of the chaining session (chaining_seed_media_id), in the form the caller holds it.
Optional ReadonlychainingSessionId?: stringOpaque chaining-session id.
Optional ReadonlyclientPosition?: string | numberClient position in the viewer.
Optional ReadonlyfriendsLane?: falseThe tab entry's friends-lane prefetch (clips/discover/social/) is the bottom bar tap's; the landing
after a published reel opens the same tab without it (run-reel-plain-20261026-2056), so it declares
false. Absent: the entry sends it.
Optional Readonlymedia?: {Readonlycode: stringThe media's shortcode, the item's identity key.
Readonlyid: stringContainer media id (<pk>_<authorPk>).
Readonlymedia_type: numberOptional Readonlyorganic_tracking_token?: stringReadonlypk: stringThe media's numeric pk.
Optional Readonlytaken_at?: numberOptional Readonlyuser?: { id?: string; pk?: string }Optional Readonlyvideo_duration?: numberThe clip's length in seconds, when the answer carries it.
Optional ReadonlymediaPctWatched?: string | numberPercentage of the clip watched before the like (0–100), the app's measurement.
Optional ReadonlyrankingSessionId?: stringRanking session id.
Optional ReadonlystoryRankingToken?: stringThe reel's story ranking token.
Optional ReadonlychainingPosition?: string | numberZero-based position in the chaining session.
Optional ReadonlychainingSeedMediaId?: stringSeed media id of the chaining session (chaining_seed_media_id), in the form the caller holds it.
Optional ReadonlychainingSessionId?: stringOpaque chaining-session id.
Optional ReadonlyclientPosition?: string | numberClient position in the viewer.
Optional ReadonlymediaPctWatched?: string | numberPercentage of the clip watched before the like (0–100), the app's measurement.
Optional ReadonlyrankingSessionId?: stringRanking session id.
Optional ReadonlystoryRankingToken?: stringThe reel's story ranking token.
The viewer's resolved chaining session, from the input it opened with: the declared values plus what the viewer itself derives.
The two session ids are the app's own: the input keeps the ones its caller declares, and the ones it lacks the viewer mints once, when it opens (its
enter, the effectful owner of the moment, like the sheet's composer session id) — never here, because a restore re-runs this function and would mint a second session. The minted session lives in the viewer's process state (ReelsViewerViews), which the checkpoint carries, so a restored viewer's like and comment name the session it opened with; the ids are nevernullwhere the app sends one (android-451/reels-comment123 andreels-like125 carry a uuid). The single-reel entry keeps every other declared value as it comes — the 450 app declares the whole session there. The list entry's seed is the tapped reel's container id (the comment's form; the like names its pk) and its positions are the reel's index in the list, derived by the reel that acts, not declared by the caller.