ReadonlyadaptiveReadonlyendpointOptional ReadonlyfeaturesReadonlyidentityReadonlyprocessProcess state, not a request dimension: whether this app process began with
a stored session (MobileProcessStart). The edge reads it from the layer;
a request cannot declare it, so HttpRequest.context cannot change it. It
decides the network-session pair and, with it, the tasos family, and the
routing-map fetch's priority hint; a request can only opt out
(transport.appNetSession: false), never turn it on.
Optional ReadonlyradioDevice state, not a request dimension: whether the device's network reports
a radio (Wi-Fi/LTE, not an emulator's Ethernet NIC). It decides the radio
half of the tasos family; a declared network.radio on the request is not
authoritative and cannot turn the half on.
Optional ReadonlyzeroDevice state, not a request dimension: the zero device ids go on the wire
(zeroDeviceIdsOf) when the presented build carries the zero-rating table
and the device holds an uploaded zero-campaign attestation key. The edge
reads it from the layer; a request cannot declare it.
Optional ReadonlyzeroThe presented profile's wire fact, not a request dimension: whether the
build carries the zero-rating table (MobileApplicationState.ZERO_HEADERS)
and so sends x-zero-balance / x-zero-eh. The 429/448 builds carry it;
the 450+ builds dropped it. The edge reads it from the layer; a request
cannot declare it. It is the one fact that decides the pair's presence on
every endpoint kind, the analytics upload included.
The presented app profile's wire fact, not a request dimension: whether the build sends
x-ig-is-adaptive-ui(MobileApplicationState.adaptiveUi). The 451 builds carry it on everyi.instagram.comrequest; the 448 and 450 builds carry none.