The app's registry id — notes, settings. Not its display name.
It was called name, which read as the human-facing one and got used that way:
ErrorBoundary printed it, so a crash in Admin said "The admin app encountered a
problem". The manifest holds the display name; this is the key you look it up with.
Which app is on screen, and which apps are still alive behind it.
Apps used to be mounted one at a time under a
{#key currentApp.id}block, so navigating away destroyed the component and everything in it — scroll position, a half-typed message, an expanded section. That is structural rather than a bug in any one app, and every app inherits it. It has already forced two workarounds: the DevTools unlock had to be written to storage to survive a trip to another app, and Settings' sub-panes are local state specifically to avoid crossing this boundary.Now an opened app stays mounted and is merely hidden, the way a phone keeps apps resident. State preservation is then total and automatic — including DOM state such as scroll offset, which no save/restore API could reasonably capture.