The challenge is over and its screens are closed: the screen it interrupted
is in front again, and screen is its handle (narrow it with
XxxScreen.is(screen) or screen.id).
The interrupted action is not retried. When the challenge interrupted an
action — a like, a follow, the launch's own request — that action failed with
the checkpoint error and sent nothing more; closing the challenge brings its
screen back, and the caller takes the action again on that handle if it
still wants it.
Narrow an outcome with ChallengeClosed.is(outcome), the same guard the
screens carry (XxxScreen.is(handle)).
screen is the generic frame handle, not a union of the platform's screens:
which screen the challenge interrupted is a fact of the process's stack at
run time, and the checkpoint error that opens the challenge carries only an
opaque process reference, never the screen the failed request was run from,
so no type can say more. The handle's id is the platform's screen-id union,
and XxxScreen.is(screen) narrows it to one screen.
The challenge is over and its screens are closed: the screen it interrupted is in front again, and
screenis its handle (narrow it withXxxScreen.is(screen)orscreen.id).The interrupted action is not retried. When the challenge interrupted an action — a like, a follow, the launch's own request — that action failed with the checkpoint error and sent nothing more; closing the challenge brings its screen back, and the caller takes the action again on that handle if it still wants it.
Narrow an outcome with
ChallengeClosed.is(outcome), the same guard the screens carry (XxxScreen.is(handle)).screenis the generic frame handle, not a union of the platform's screens: which screen the challenge interrupted is a fact of the process's stack at run time, and the checkpoint error that opens the challenge carries only an opaque process reference, never the screen the failed request was run from, so no type can say more. The handle'sidis the platform's screen-id union, andXxxScreen.is(screen)narrows it to one screen.