Package-level declarations
Types
Static, mostly cosmetic facts about the running application (e.g. shown in an "About" dialog).
The part of GuiState describing the application's own lifecycle, independent of any page/workspace.
A page's standard input text plus everything it has produced on stdout/stderr and any warnings raised.
A page's accumulated diagnostics from every source (syntax, solver, ...), each independently replaceable via replaceSource, plus an unread-changes counter for a lower-tab badge.
Where a document came from/should be saved to, in a way no toolkit-neutral code needs to interpret - only the frontend that registered providerId knows how to read/write opaqueReference.
One open document's content and save status, independent of which page(s) reference it.
A page's actually-effective solver profile/timeout/options, after applying its own overrides on top of the workspace-wide defaults - see resolve.
A JSON-like value an extension's feature (e.g. PLP's BDD/probability) attaches to a page, keyed by name in PageFeatureState - toolkit-neutral so any frontend can render it without knowing the extension's own types.
The entire observable state of a GuiController at one point in time - what GuiModel.state holds.
A page's own overrides on top of the workspace-wide WorkspaceConfiguration - null/absent fields fall back to the workspace default (see WorkspaceConfiguration.resolve).
What a page actually edits: either a shared, independently-persisted document, or throwaway scratch text local to the page itself.
One extension feature's current values for a page (e.g. PLP's BDD/probability), plus a revision counter for unread-changes tracking.
A page's bounded history of concluded resolutions - what its Solutions tree/panel renders.
One page's entire state: what it edits/queries, its solver session, resolution/history, console, diagnostics, highlighting, and per-extension feature state.
A page's bounded, de-duplicated (consecutive-only) history of submitted queries - what its Up/Down query-history navigation steps through.
A page's current query text plus its submission history.
One concluded resolution recorded in a page's history: the query it ran, every solution it yielded, and how it ended.
A page's current (in-progress or just-concluded) resolution: its status, solutions so far, and whether the Solutions panel has unread changes.
The lifecycle of one page's resolution.
How up-to-date a page's solver session is with respect to its source/configuration.
A page's view of its own solver session: whether/how it's built, what it supports, and its latest inspectable snapshot.
An append-only text stream (stdout/stderr) with an unread-changes counter for a lower-tab badge.
An append-only list of solver warnings with an unread-changes counter for a lower-tab badge.
Workspace-wide defaults every page inherits unless it overrides them via its own PageConfiguration.
Every open document and page, which one is selected, and the workspace-wide configuration - invariants (every page's document exists, the selected page exists) are enforced in the init block below.
Functions
Merges page's per-page overrides on top of this workspace-wide configuration.