EventSchemaBuilderScope
The DSL receiver behind every events = { ... } block — what a tile's own events parameter and an event's own nested events parameter (its outgoing-trigger children) both run against, as well as EventList's standalone block. Each nested event call inside the block builds its own EventSchemaBuilder and registers it via addBuilder; the enclosing call collects the results via build.
Functions
Registers builder as a child of this scope, snapshotting the CompositionLocal values currently active (via BuildContext.get) into GenericBuilder.compositionLocals — captured now, at DSL-call time, not later when build actually invokes it. Called once per nested DSL call (SimpleText(...), SendNetworkRequest(...), etc.) by each such call's own top-level builder function.
Appends tiles as children of the grouping tile identified by groupingTileId, at position, without rebuilding the rest of the screen. Does not consume incomingData. Dispatches onSuccess (no data) when the children were added; onFailure (carrying the thrown exception, logged) when no grouping tile carries groupingTileId, or it cannot hold children.
Publishes a value on the client's system broadcast channel under broadcastId, where the host application and any mounted SystemBroadcastListener tile can pick it up — the outbound half of the bridge between server-declared flows and native app code. data chooses the payload: incomingBroadcastData publishes incomingData, inlineBroadcastData publishes a literal declared on the event. Consumes incomingData as the payload when data is incomingBroadcastData. Dispatches onSuccess (no data) after the value was published; onFailure (no data), only in the incoming-data case, when incomingData is null so there is nothing to publish.
Builds every registered Builder in registration order, restoring each one's own GenericBuilder.compositionLocals snapshot (via BuildContext.with) for the duration of its own GenericBuilder.build call.
Cancels the coroutine job registered under cancellableEventId, stopping whatever RunCancellableEvents started with that id. Does not consume incomingData. Dispatches onSuccess (no data) when a running job was found and cancelled; onFailure (carrying a NoSuchElementException, logged) when nothing is registered under cancellableEventId — either it never ran or its job already finished.
Moves the screen this event lives in to another state — initialState (its loading state), failureState (its failure state), or successState with the content to display. For success, the content comes from the data passed to successState when set, otherwise from incomingData, which must then be a ScreenModel — typically the one produced by a preceding GetScreen. Dispatches onSuccess (no data) when the state was applied; onFailure (no data, logged) when applying it throws, including a success state with no declared data and no ScreenModel in incomingData.
Reads a one-shot value from the client's DataMailer under dataKey and branches on whether it was there — the receiving half of a SendData/CheckForReceivedData handoff between screens. Does not consume incomingData. Dispatches onDataReceived and onSuccess (both carrying the value) when a value exists for dataKey; onFailure (no data) when none does.
Asks the client's network layer whether the device currently has an internet connection, and branches on the answer, on the IO dispatcher. Does not consume incomingData. Dispatches onStart before the check runs; onSuccess (no data) when there is a connection; onFailure (no data) when there is none.
Tests whether the grouping tile identified by groupingTileId currently holds every child in childrenIds, and branches on the answer. Does not consume incomingData. Dispatches onSuccess (no data) when all the listed children are present; onFailure (no data) when at least one is missing, and also when no grouping tile carries groupingTileId — the two cases are indistinguishable downstream.
Deletes the file stored under fileName in the client's own file storage. Does not consume incomingData. Dispatches onSuccess (no data) when the deletion completed; onFailure (carrying the Throwable, logged) when it failed.
Closes the bottom sheet registered under bottomSheetId. Does not consume incomingData. Dispatches onSuccess (no data) when the sheet was dismissed; onFailure (carrying the thrown exception) when no bottom sheet is showing under bottomSheetId.
Closes the modal bottom sheet registered under modalBottomSheetId. Does not consume incomingData. Dispatches onSuccess (no data) when the sheet was dismissed; onFailure (carrying the thrown exception) when no modal bottom sheet is showing under modalBottomSheetId.
Closes the screen's navigation drawer, by broadcasting a close command on the screen channel. Does not consume incomingData. Dispatches onSuccess (no data) always, right after the command is broadcast — the broadcast is fire-and-forget, so this fires even when no drawer is open.
Hides the snackbar currently showing on the screen, by broadcasting a dismiss command on the screen channel. Does not consume incomingData. Dispatches onSuccess (no data) always, right after the command is broadcast — the broadcast is fire-and-forget, so this fires even when no snackbar is showing.
Shows a non-modal bottom sheet built from tiles, registered under bottomSheetId so a later DismissBottomSheet can close it — unlike the modal variant, it does not dim or block the content behind it. isCancellable decides whether the user can dismiss it by gesture, fill whether it takes the full height, and allowsPartialExpansion whether it stops at a half-expanded state before reaching full height. Does not consume incomingData. Dispatches onSuccess (no data) when the sheet was added; onFailure (carrying the thrown exception) when it could not be added, typically because bottomSheetId is already in use; onDisplay once, when the sheet actually enters composition on screen.
Shows a dialog built from tiles, registered under dialogId so a later DismissDialog can close it. isCancellable decides whether the user can dismiss it with the back gesture or a scrim tap, and usePlatformDefaultWidth whether the dialog keeps the platform's default width or sizes itself from its content. Does not consume incomingData. Dispatches onSuccess (no data) when the dialog was added; onFailure (carrying the thrown exception) when it could not be added, typically because dialogId is already in use; onDisplay once, when the dialog actually enters composition on screen.
Shows a modal bottom sheet built from tiles, registered under modalBottomSheetId so a later DismissModalBottomSheet can close it — unlike the plain bottom sheet, this one dims and blocks the content behind it. isCancellable decides whether the user can dismiss it by gesture or scrim tap, fill whether it takes the full height, and allowsPartialExpansion whether it stops at a half-expanded state before reaching full height. Does not consume incomingData. Dispatches onSuccess (no data) when the sheet was added; onFailure (carrying the thrown exception) when it could not be added, typically because modalBottomSheetId is already in use; onDisplay once, when the sheet actually enters composition on screen.
Opens the screen's navigation drawer, by broadcasting an open command on the screen channel. The drawer content is declared on the screen itself, so this event carries no parameters and there is only ever one drawer per screen. Does not consume incomingData. Dispatches onSuccess (no data) always, right after the command is broadcast — the broadcast is fire-and-forget, so this fires even when the screen declares no drawer.
Shows a snackbar with message, by broadcasting a display command on the screen channel. duration maps onto Material's short/long/indefinite durations, and actionLabel adds an action button when non-null. Does not consume incomingData. Dispatches onSuccess (no data) right after the command is broadcast, before the snackbar has resolved — the broadcast is fire-and-forget, so this fires regardless of what the snackbar does next; later, onSnackbarAction (no data) when the user presses the action button, or onSnackbarDismissed (no data) when the snackbar goes away without its action being pressed.
Downloads url and hands the result to the platform's own download destination — the user's Downloads folder or equivalent — under targetFileName, with mimeType describing the content. method, headers and body shape the request. Does not consume incomingData. Dispatches onStart before the download begins; onDownloadProgress repeatedly while downloading (carrying the progress); onDownloadFinish then onSuccess (both carrying targetFileName) when the download completed; onDownloadFailure then onFailure (both carrying the Throwable, logged) when it failed; onCancelled (no data) when the user cancels the download — in that case neither download-failure nor failure fires.
Downloads url into the client's own file storage under targetFileName, where GetFile and DeleteFile can reach it afterwards. method, headers and body shape the request. Does not consume incomingData. Dispatches onStart before the download begins; onDownloadProgress repeatedly while downloading (carrying the progress); onDownloadFinish then onSuccess (both carrying targetFileName) when the download completed; onDownloadFailure then onFailure (both carrying the Throwable, logged) when it failed.
Downloads url without touching the filesystem, keeping the content in memory. method, headers and body shape the request. Does not consume incomingData. Dispatches onStart before the download begins; onDownloadProgress repeatedly while downloading (carrying the progress); onDownloadFinish then onSuccess (both carrying the total byte count) when the download completed; onDownloadFailure then onFailure (both carrying the Throwable, logged) when it failed.
Clears the client's local caches: dropScreensCache the cached screen payloads, dropInitialGraphCache the cached initial navigation graph, and dropVersionCache the cached version marker used to decide whether cached content is still valid. Does not consume incomingData. Dispatches onSuccess (no data) when the selected caches were dropped; onFailure (carrying the thrown exception, logged) when dropping fails.
Evaluates the boolean expression and branches on the result, on the IO dispatcher. An expression composes not/and/or over leaf comparisons built by calling an operation function (e.g. isEqualsTo, isNull, containsSubstring) on a incomingData/dataSourceData value; an operation applied to a value of the wrong runtime type evaluates to false rather than throwing. Forwards incomingData unchanged to whichever trigger fires; any IncomingData leaf reads from that same value. Dispatches onSuccess (forwarding incomingData) when expression evaluates to true; onFailure (also forwarding incomingData) when it evaluates to false, or with the thrown Throwable instead when evaluation itself throws.
Reads one or more values from data sources and emits them downstream, on the IO dispatcher. Each readings entry (built with reading) pairs a data source with an access mode; readings are processed in order into a single accumulator, so a later reading overwrites an earlier one on key collision. Full access mode, and Batch without unwrapValuesToList, produce a map keyed by data id; Batch with unwrapValuesToList produces a list of values; with only Single readings, one reading emits the bare value and several emit a list — a map result wins over a list result when the two are mixed. Does not consume incomingData. Dispatches onStart before any reading runs, onSuccess (carrying the assembled result) once every reading resolves, and onFailure on the first problem — a Single id resolving to null, a missing Batch id with allowMissingData false, or a database read failure.
Reads the file stored under fileName from the client's own file storage and emits its content downstream, shaped by outputType. Does not consume incomingData. Dispatches onSuccess (carrying the content, shaped by outputType) when the file was read; onFailure (carrying the Throwable, logged) when the read failed, no file exists under fileName, or mapObject() decoding fails.
Opens the platform picker restricted to images and emits the chosen image downstream, on the IO dispatcher. When compression is set the bytes are re-encoded to WebP through byQuality/byTargetSize, with resize applied in the same pass (the compressor's own defaults are used when resize is null); when compression is null the original bytes are emitted untouched and resize has no effect. Does not consume incomingData. Dispatches onSuccess (carrying the image, shaped by outputType) when an image was picked and processed; onCancelled (no data) when the user dismisses the picker without choosing an image; onFailure (carrying the thrown exception) when reading or compressing throws.
Fetches the payload of the screen this event lives in and emits it downstream, without applying it — pair it with ChangeScreenState to decide when and how the fetched content is installed, which is what makes custom loading and error flows possible. The request targets the screen's own id, shaped by method, body, headers and timeoutMillis. Does not consume incomingData. Dispatches onStart before the request is sent; onSuccess (carrying the fetched ScreenModel, ready for ChangeScreenState) when the screen was fetched; onNetworkFailure(status) (carrying the failure) when the request failed with an HTTP status and a child event is wired to that exact status; onFailure (carrying the Throwable, logged) for every other failure and for HTTP failures with no status-specific event declared — only one of the latter two fires per failure.
Reads how many children the grouping tile identified by groupingTileId currently holds. Does not consume incomingData. Dispatches onSuccess (carrying the count as an Int); onFailure (no data) when no grouping tile carries groupingTileId, or it cannot hold children.
Navigates the graph registered under navigatorId to destination, pushing it onto the back stack. The destination receives incomingData merged with data (with data winning on key collision) as its navigation data — only map-shaped incomingData contributes, and null values are dropped from both, since navigation arguments are never null. When popUpTo is set (built with poppingUpTo), entries are popped up to that destination before the new one is pushed. Dispatches onSuccess (no data) when the navigation was performed; onFailure (no data, logged) when no navigator is registered under navigatorId or it refused the navigation.
Navigates the graph registered under navigatorId to destination, clearing the whole back stack so the destination becomes the only entry — the usual move after login or logout. The destination receives incomingData merged with data (with data winning on key collision) as its navigation data — only map-shaped incomingData contributes, and null values are dropped from both, since navigation arguments are never null. launchSingleTop avoids stacking a second copy when the destination is already the current entry. Dispatches onSuccess (no data) when the navigation was performed; onFailure (no data, logged) when no navigator is registered under navigatorId or it refused the navigation.
Pops the back stack of the graph registered under navigatorId, going back one entry. Does not consume incomingData. Dispatches onSuccess (no data) when an entry was popped; onFailure (no data, logged) when no navigator is registered under navigatorId or there was nothing to pop.
Hands url to the platform so it opens outside the app — the system browser, or whichever app claims the scheme. Does not consume incomingData. Dispatches onSuccess (no data) after the platform accepted the request; onFailure (carrying the thrown exception, logged) when opening throws, e.g. because nothing on the device handles the URL.
Opens the platform file picker and emits the chosen file downstream, shaped by outputType. fileType restricts what can be picked; pickMode currently only offers a single selection. Does not consume incomingData. Dispatches onSuccess (carrying the content, shaped by outputType) when a file was picked and read; onCancelled (no data) when the user dismisses the picker without choosing a file; onFailure (carrying the thrown exception) when mapObject() decoding fails or the picker itself throws.
Hands incomingData to the DataProcessor the host client app registered under processWith — what the processing does is opaque to the framework, since processors are supplied by the client. incomingData is required; the processor's own result is not passed downstream. Dispatches onSuccess (no data) when the processor returns successfully; onFailure when the processor returns a failure (carrying the Throwable), when no processor is registered under processWith, or when incomingData is null (no data in the latter two cases).
Refetches the screen this event lives in and applies the result to it directly — the screen moves to its initial (loading) state, then to success with the new content or to its failure state, unlike GetScreen, which needs a separate event to install what came back. The request targets the screen's own id, shaped by method, body, headers and timeoutMillis. Does not consume incomingData. Dispatches onSuccess (carrying the fetched ScreenModel) when the screen was fetched and applied; onNetworkFailure(status) (carrying the failure) when the request failed with an HTTP status and a child event is wired to that exact status; onFailure (carrying the Throwable, logged) for every other failure and for HTTP failures with no status-specific event declared — only one of the latter two fires per failure, and the screen is left in its failure state either way.
Resets the LazyTiles tile identified by lazyTileId back to its loading state — it drops the tiles it had loaded, clears its failure flag, and fires its request again, the way to retry after a failed load. Does not consume incomingData. Dispatches onSuccess (no data) when the signal reached the tile — note this reports the reset, not the reload that follows; the load's own outcome arrives through the tile's own load-success/load-failure triggers. onFailure (carrying the thrown exception) fires when no tile with lazyTileId is currently mounted.
Deletes values from data sources, on the IO dispatcher. Each deletions entry (built with addDeletion) pairs a data source with an access mode — Single removes one id, Batch removes a list of ids, Full wipes the source. Supports the application and screen data holders (plain and segmented) and the plain and segmented local databases; deletions targeting navigation data, a tile or an inline source are silently ignored. All deletions are attempted even if one fails. Does not consume incomingData. Dispatches onSuccess (no data) when every deletion completes without error; onFailure (no data), once at the end, when at least one database deletion failed.
Removes the children listed in tileIds from the grouping tile identified by groupingTileId — ids that aren't among its children are ignored. Does not consume incomingData. Dispatches onSuccess (no data) when the removal completed; onFailure (carrying the thrown exception, logged) when no grouping tile carries groupingTileId.
Swaps the whole children list of the grouping tile identified by groupingTileId for tiles. Does not consume incomingData. Dispatches onSuccess (no data) when the children were replaced; onFailure (carrying the thrown exception, logged) when no grouping tile carries groupingTileId.
Asks the platform for the runtime permissions, through the client's PermissionManager. Does not consume incomingData. Dispatches onPermissionsAcquired then onSuccess (both no data) when every requested permission was granted; onPermissionsDenied then onFailure (both no data) when the request was denied; onPermissionRationale (no data) when the platform asks for a rationale to be shown before requesting again — chain the explanation onto this trigger and request once more.
Drops any color scheme previously installed by SetTheme, putting the app back on the color scheme it was built with. Does not consume incomingData. Dispatches onSuccess (no data) always, after the reset.
Runs its own child events inline, in order, inside a cancellable job registered under cancellableEventId — a later CancelEvents carrying the same id stops the job mid-flight. Unlike most events, events here is the payload executed rather than a downstream chain, and it receives this event's incomingData. The job runs in its own coroutine scope, so this event returns as soon as the job is registered, without waiting for events to finish. Dispatches onSuccess (no data) as soon as the job is registered — not when it finishes; onFailure when events is empty, since there is nothing to run.
Runs its own child events inline, in order, each receiving this event's incomingData — the way to fan one trigger out into several events, or to group events for reuse, without changing incomingData along the way. Unlike most events, events here is the payload executed rather than a downstream chain; each entry is run guarded, so one failing event is logged and the rest still run. Dispatches onSuccess (no data) when every event ran without throwing; onFailure (no data), once at the end after all were attempted, when at least one threw (each failure logged).
Writes incomingData — required, and must be a ByteArray — to fileName in the client's own file storage. When overrideIfExists is false, the runner first checks fileName and refuses to write if something is already there. Dispatches onSuccess (no data) when the file was written; onFailure (carrying the thrown exception, logged) when incomingData is missing or not a ByteArray, when overrideIfExists is false and the file already exists, or when the write itself fails.
Scrolls the Column or LazyColumn tile identified by tileId to where, by broadcasting a scroll command on the screen channel. smoothly chooses between an animated and an immediate jump. Does not consume incomingData. Dispatches onSuccess (no data) always, right after the command is broadcast — the broadcast is fire-and-forget, so this fires even when no tile carries tileId.
Moves the Pager or Carousel tile identified by tileId to where, by broadcasting a scroll command on the screen channel. smoothly chooses between an animated and an immediate jump; the receiving tile clamps the result, so asking for the next page on the last one is a no-op. Does not consume incomingData. Dispatches onSuccess (no data) always, right after the command is broadcast — the broadcast is fire-and-forget, so this fires even when no tile carries tileId.
Scrolls the Row or LazyRow tile identified by tileId to where, by broadcasting a scroll command on the screen channel. smoothly chooses between an animated and an immediate jump. Does not consume incomingData. Dispatches onSuccess (no data) always, right after the command is broadcast — the broadcast is fire-and-forget, so this fires even when no tile carries tileId.
Posts a value into the client's DataMailer under dataKey, where a later CheckForReceivedData can pick it up — the mailer is a one-shot channel, so this is how a value is handed off to another screen. Sends data when it is non-null, otherwise incomingData. Dispatches onSuccess (no data) after the value is posted; onFailure (no data, error logged) when both data and incomingData are null, so there is nothing to send.
Sends an HTTP request to url with method, headers, body and an optional timeoutMillis, and emits the response downstream — the general-purpose way to talk to a backend from inside an event chain. A JSON response is parsed into plain maps, lists and primitives (a JSON body that fails to parse yields null); anything else is passed through as a raw ByteArray. Does not consume incomingData. Dispatches onStart before the request is sent; onNetworkResponse(status)/onNetworkFailure(status) (carrying the parsed body) when a child event is wired to that exact HTTP status — the former for 2xx, the latter for the rest; onSuccess (carrying the parsed body) when the response is 2xx and no status-specific event was declared; onFailure (carrying the parsed body, or the Throwable on transport failures like timeout/no connectivity — logged) when the response isn't 2xx and no status-specific event was declared. Exactly one outcome trigger fires per response.
Stores incomingData as the request body in the client's NetworkParametersHolder, so a later request in the chain picks it up instead of carrying the body on its own schema. incomingData is required; any non-null value is accepted as-is. Dispatches onSuccess (no data) when the body was stored; onFailure (no data, logged) when incomingData is null.
Stores incomingData as the request headers in the client's NetworkParametersHolder, so a later request in the chain picks them up instead of carrying the headers on its own schema. incomingData is required and must be a map holding at least one String value; entries whose value isn't a String are dropped. Dispatches onSuccess (no data) when the headers were stored; onFailure (no data, logged) when incomingData is missing, isn't a map, or holds no String value at all.
Stores incomingData as the query parameters in the client's NetworkParametersHolder, so a later request in the chain picks them up instead of carrying the parameters on its own schema. incomingData is required and must be a map keyed by String. Dispatches onSuccess (no data) when the parameters were stored; onFailure (no data, logged) when incomingData is missing or isn't a map.
Stores incomingData as the URL in the client's NetworkParametersHolder, so a later request in the chain picks it up instead of carrying the URL on its own schema — the pattern behind SendFile-style flows where the URL comes from a prior response. incomingData is required and must be a String. Dispatches onSuccess (no data) when the URL was stored; onFailure (no data, logged) when incomingData is missing or isn't a String.
Overrides the app's Material color schemes at runtime with colorsScheme, which carries a full light and a full dark scheme — every Material 3 role, from primary through the surface container and fixed-accent families. Both are applied at once, so the app keeps following the system's light/dark setting. Does not consume incomingData. Dispatches onSuccess (no data) always, after the schemes are applied.
Starts a countdown in a coroutine launched from the running event's context, ticking down from timerData's initial toward zero in step-sized decrements, waiting one step between ticks — built with milliseconds or seconds. The event returns as soon as the countdown is launched, so the chain continues while the timer runs in the background; it stops on its own when the countdown ends. To stop it early, launch it from inside a RunCancellableEvents and cancel that id with CancelEvents. Does not consume incomingData. Dispatches onCountdownTimerTick once per tick (carrying the remaining amount), and onTimeFinish once after the last tick — neither success nor failure is reported.
Starts an endless loop in a coroutine launched from the running event's context, firing once per period set by timeData — built with milliseconds or seconds. The first fire happens after the first delay, not immediately. The event returns as soon as the loop is launched, so the chain continues while it keeps running; the loop runs forever by design, so to be able to stop it, launch it from inside a RunCancellableEvents and cancel that id with CancelEvents. Does not consume incomingData. Dispatches onTimeLoop once per period, indefinitely — no data is passed, and neither success nor failure is reported.
Stops the loading indicator of the PullToRefresh tile identified by tileId — the tile never hides its spinner on its own, so this event must close every refresh flow, on both the success and failure branches. Does not consume incomingData. Dispatches onSuccess (no data) when the signal reached the tile; onFailure (carrying the thrown exception) when no tile with tileId is currently mounted.
Opens the camera and emits the captured photo downstream, on the IO dispatcher. When compression is set the bytes are re-encoded to WebP through byQuality/byTargetSize (the capture is treated as image/png), with resize applied in the same pass (the compressor's own defaults are used when resize is null); when compression is null the original bytes are emitted untouched and resize has no effect. Does not consume incomingData. Dispatches onSuccess (carrying the image, shaped by outputType) when a picture was taken and processed; onCancelled (no data) when the camera returns nothing, e.g. the user backs out of the capture; onFailure (carrying the thrown exception) when capturing or compressing throws.
Flips the open/closed state of the Menu tile identified by menuId — since the tile itself only closes on dismissal, this is how a menu is opened from the server side, and, wired onto a menu item's click, how it is closed after acting on the selection. Does not consume incomingData. Dispatches onSuccess (no data) when the signal reached the tile; onFailure (carrying the thrown exception, logged) when no tile with menuId is currently mounted.
Flips the open/closed state of the Popup tile identified by popupId — since the tile itself only closes on dismissal, this is how a popup is opened from the server side. Does not consume incomingData. Dispatches onSuccess (no data) when the signal reached the tile; onFailure (carrying the thrown exception, logged) when no tile with popupId is currently mounted.
Reshapes incomingData into a new value by applying template through the client's TemplateProcessor, letting a payload be rewritten mid-chain without a round trip. template placeholders follow <|path.to.key|> (dot-notation into incomingData) and <||> (the whole incomingData, type preserved); a template mixing a placeholder with literal text is coerced to a string, while a single bare placeholder keeps its native type. incomingData is required as the input the template is applied to. Dispatches onSuccess (carrying the transformed value) when the template applies cleanly; onFailure (carrying the thrown Throwable, error logged) when applying it throws.
Overload of TransformData that builds the template as a nested tile-event-style block (eventTemplate) rather than a literal value — useful when the template itself needs to be assembled from Kotlin data structures via the event DSL. Behaves otherwise exactly like the literal-template overload.
Looks up the event registered on the screen under eventId and runs it inline, letting one event chain reuse another that lives on a different tile. Forwards incomingData unchanged to the event being run. Dispatches onSuccess (no data) after the target event ran; onFailure when no event is registered under eventId (no data, logged) or when running it throws (carrying the Throwable, logged).
Writes values into data sources, on the IO dispatcher. Updates are grouped by data source, and each updates entry (built with update) resolves to a set of key/value entries: incoming data (built with incomingUpdateData) spreads incomingData when it is a map (and contributes nothing when it isn't), inline data (built with inlineUpdateData) writes a literal map, and explicit data (built with explicitUpdateData/explicitIncomingUpdateData/explicitNullUpdateData) writes a single known key taking its value from a literal or from incomingData as-is — the only way to write a value that is itself a map/record intact. Supports the application and screen data holders (plain and segmented) and the plain and segmented local databases; updates targeting navigation data, a tile or an inline source are silently ignored. The in-memory data holders accept null (clearing the entry); the databases don't yet, so entries resolving to null are skipped instead of written. Dispatches onSuccess (no data) when every write completes without error; onFailure (no data, each failure logged), once at the end, when at least one database write failed.
Patches events already registered on the screen. Each updates entry (built with update) targets an event by id and merges a data map into it, the same way UpdateTiles patches a tile, so a chain can rewrite another event's parameters before it runs. All updates are attempted even if one fails. Does not consume incomingData. Dispatches onSuccess (no data) when every update was applied; onFailure (no data), once at the end, when at least one failed — typically because no event carries that id.
Patches tiles in place — the primary way to change what is on screen without refetching it. Each updates entry (built with update) targets a tile by id and merges a map of field names into it: only the listed fields change, and style is merged rather than replaced. The map comes from incomingTileUpdateData (incomingData used as-is when it is a map; skipped and counted as a failure otherwise), inlineTileUpdateData (a literal map declared on the event), or mappedIncomingTileUpdateData (one template per field, each resolved against incomingData through the client's TemplateProcessor, so a payload can be reshaped per field on the way in). All updates are attempted even if one fails. Consumes incomingData for the incoming and mapped forms. Dispatches onSuccess (no data) when every update was applied; onFailure (no data, each failure logged), once at the end, when at least one update failed — no tile carries that id, a mapped template threw, or an incoming update got non-map incomingData.
Uploads the PlatformFile carried in incomingData to url with method, headers and contentType, reporting progress as it goes — pair it with OpenFilePicker or GetFile using their platform-file output. A JSON response is parsed into plain maps, lists and primitives (a JSON body that fails to parse yields null); anything else is passed through as raw bytes. incomingData is required and must be a PlatformFile. Dispatches onStart after incomingData is validated, before the upload begins; onUploadProgress repeatedly while uploading (carrying the progress); onNetworkResponse(status)/onNetworkFailure(status) (carrying the parsed body) when a child event is wired to that exact HTTP status — the former for successful statuses, the latter for the rest; onSuccess (carrying the parsed body) when the upload succeeded and no status-specific event was declared; onFailure when incomingData isn't a PlatformFile (fired before onStart, no data), when the response is unsuccessful with no status-specific event declared (carrying the parsed body), or when the upload itself fails (carrying the Throwable) — all logged.
Removes every child of the grouping tile identified by groupingTileId, leaving it empty. Does not consume incomingData. Dispatches onSuccess (no data) when the children were removed; onFailure (carrying the thrown exception, logged) when no grouping tile carries groupingTileId.