Interface ScreenLaunch<Id, Kind, Input, Data, State, E, R, Actions, Items, LaunchInput, BE, BR>
What the platform's app process starts with: the first screen a logged-in
launch shows, the launch edge's own facts — the navigation source and the
ordinal skip — and the launch's burst. The screen is a definition of the
platform's screen set, not an id: the entry opens it through the core launch
edge (enterRoot) and checks that the runtime really has it.
The burst is the ordered list of everything the app sends when it launches,
written once in the declaration with its concurrency windows (Effect.all
over the list, window after window), and carries one firstScreen mark
(LaunchBurstMarks).
screenInput turns the caller's launch input into the first screen's input,
so facts of the launch — the screen's opening — are the declaration's, not
the caller's.
The brand keeps an arbitrary effect out of the declaration: only
declareLaunch builds one. The declaration is the API of the platform
packages (third-party platforms included): a platform installs its own and the
entry reads it; declareLaunch is public for that reason. It is written by
inference from declareLaunch(screen, via, …), never through a hand-written
type — the parameters below carry the screen's data, actions and services and
the burst's, and an annotation that names them by hand erases exactly what
OpenApp hands back.
What the platform's app process starts with: the first screen a logged-in launch shows, the launch edge's own facts — the navigation source and the ordinal skip — and the launch's burst. The screen is a definition of the platform's screen set, not an id: the entry opens it through the core launch edge (
enterRoot) and checks that the runtime really has it.The burst is the ordered list of everything the app sends when it launches, written once in the declaration with its concurrency windows (
Effect.allover the list, window after window), and carries onefirstScreenmark (LaunchBurstMarks).screenInputturns the caller's launch input into the first screen's input, so facts of the launch — the screen's opening — are the declaration's, not the caller's.The brand keeps an arbitrary effect out of the declaration: only declareLaunch builds one. The declaration is the API of the platform packages (third-party platforms included): a platform installs its own and the entry reads it;
declareLaunchis public for that reason. It is written by inference fromdeclareLaunch(screen, via, …), never through a hand-written type — the parameters below carry the screen's data, actions and services and the burst's, and an annotation that names them by hand erases exactly whatOpenApphands back.