push

fun push(scope: JsonObject = EmptyJsonObject, screen: String? = null, section: String? = null): ScopeHandle

Pushes a frame contributing scope properties (low precedence — an explicit call-site property always wins over them) and/or a screen/section (reserved keys, high precedence). Returns a ScopeHandle to update or remove it with. A frame may carry scope only (an AutographScope analogue), screen only (a TrackedScreen analogue), or both.

A frame that names a screen owns its section: pushing screen = "X" with no section means "screen X, no section", and an inner screen that declares none does not inherit the section of an outer one still on the stack. A frame with a section but no screen is a section-only marker that refines the surrounding screen instead.