Variable ScreenTrailSchemaConst
ScreenTrailSchema: Struct<
{
app: Struct<
{ platform: Literals<readonly ["android", "ios"]>; version: String },
>;
deviceUuid: String;
format: Literal<1>;
root: Struct<
{
input: optionalKey<Codec<Json, Json, never, never>>;
position: optionalKey<Codec<Json, Json, never, never>>;
screen: refine<
| "FeedTimeline"
| "ShortUrlFeed"
| "ClipsViewer"
| "CommentsV2"
| "Explore"
| "SearchTypeahead"
| "SerpTop"
| "SerpUsers"
| "UserDetail"
| "ProfileMediaTab"
| "ContextualFeed"
| "DirectInbox"
| "DirectThread"
| "CustomizeChat"
| "DirectThreadThemePicker"
| "DirectThreadDetails"
| "DirectThreadSharedMedia"
| "DirectThreadNicknames"
| "DirectThreadNicknameChange",
String,
>;
},
>;
steps: $Array<
Union<
readonly [
Struct<
{
args: Codec<Json, Json, never, never>;
edge: String;
item: optionalKey<
Struct<
{ key: Union<(...)>; list: String; locator: optionalKey<(...)> },
>,
>;
position: optionalKey<Codec<Json, Json, never, never>>;
screen: refine<
| "FeedTimeline"
| "ShortUrlFeed"
| "ClipsViewer"
| "CommentsV2"
| "Explore"
| "SearchTypeahead"
| "SerpTop"
| "SerpUsers"
| "UserDetail"
| "ProfileMediaTab"
| "ContextualFeed"
| "DirectInbox"
| "DirectThread"
| "CustomizeChat"
| "DirectThreadThemePicker"
| "DirectThreadDetails"
| "DirectThreadSharedMedia"
| "DirectThreadNicknames"
| "DirectThreadNicknameChange",
String,
>;
},
>,
Struct<
{
position: optionalKey<Codec<Json, Json, never, never>>;
screen: refine<
| "FeedTimeline"
| "ShortUrlFeed"
| "ClipsViewer"
| "CommentsV2"
| "Explore"
| "SearchTypeahead"
| "SerpTop"
| "SerpUsers"
| "UserDetail"
| "ProfileMediaTab"
| "ContextualFeed"
| "DirectInbox"
| "DirectThread"
| "CustomizeChat"
| "DirectThreadThemePicker"
| "DirectThreadDetails"
| "DirectThreadSharedMedia"
| "DirectThreadNicknames"
| "DirectThreadNicknameChange",
String,
>;
via: Struct<
{
skipOrdinals: optionalKey<Number>;
source: Literals<
readonly [
(...),
(...),
(...),
(...),
(...),
(...),
(...),
(...),
(...),
],
>;
},
>;
},
>,
],
>,
>;
telemetry: $Array<
Struct<
{
atMs: Number;
channel: Literal<"pigeon">;
id: String;
name: String;
payload: Codec<Json, Json, never, never>;
},
>,
>;
viewer: String;
},
> = ...
A screen trail: the open stack of one process, as the path that reaches it — its root (the screen
OpenAppopened), then one step per open screen above it, bottom first, a tab switched to after the launch being a step of its own; a closed screen is not in it andbackis not a step. An inner tab's step follows the step of the screen it replaced. It is bound to the viewer (dsUserId) and the device (uuid) it was written for and names the platform;app.versionis for information only — a retrace accepts a drift of the version. It carries the process's telemetry not yet handed to delivery (telemetry), which a retrace puts back into the new process's store first, whether the screens retrace or not, and never twice.