Readonlymain: AndroidIgpapiMain<CheckpointFirstScreen<Top>, A, E, R>What the caller does with the process, from the first screen on.
Optional Readonlyotherwise?: AndroidOtherwise<unknown>The screens the app can show instead of the expected one, built once with
defineOtherwise: over the start and over every effect the screens
run inside main, each branch answers its screen until the challenge
closes, and the interrupted effect runs again. What the branches cannot
settle rejects the call with its typed error (UnexpectedScreenError for a
screen no branch covers), never main's channel.
Readonlycheckpoint: ScreenCheckpoint<Top>Optional Readonlyscreen?: undefinedOptional Readonlysnapshot?: undefinedA hand-built snapshot with a signed-in session: the signed-in app's cold start, main gets the feed.
A hand-built snapshot without a session: the login home on that device.
A hand-built snapshot that may or may not hold a session (a converted one): either first screen.
What a launch entry takes: a typed checkpoint, a named screen, or the first-screen union. Every form takes
otherwise;mainreceives the expected screen alone, never the challenge.