Package-level declarations

Types

Link copied to clipboard
data class UiCategory(val id: ResourceId)

An application-defined screen category; no runtime registration is required.

Link copied to clipboard
class UiClientCapabilities(types: Set<ProjectionType>, val hudLimit: Int)

Detached client support advertised by a successfully negotiated Strata connection. types contains exact component, modifier, and action schemas; hudLimit is the negotiated HUD capacity. Transport framing and implementation classes are outside this application contract.

Link copied to clipboard

Terminal reason retained by the public session handle.

Link copied to clipboard
class UiDefinition(title: UiText? = null, val presentation: UiPresentation = UiPresentation.Screen, val category: UiCategory? = null, val inputPolicy: UiInputPolicy = UiInputPolicy.BlockAll, val visibility: UiVisibilityPolicy = UiVisibilityPolicy(), val hudOrder: Int = 0, val pausesGame: Boolean = false, content: UiScope.() -> Unit) : AutoCloseable

One-shot UI contents and opening settings, without retaining a live session. Construction does not evaluate content. Transfer and close may race; exactly one wins ownership. The optional title is a narration name and is not automatically drawn inside the UI. pausesGame only takes effect when presented as a screen.

Link copied to clipboard

Uniquely transferred definition, owned by its accepting runtime until terminal cleanup.

Link copied to clipboard

Native gameplay actions controlled independently while a UI owns input.

Link copied to clipboard
data class UiInputPolicy(val movement: Boolean = false, val jump: Boolean = false, val sneak: Boolean = false, val sprint: Boolean = false, val look: Boolean = false, val attack: Boolean = false, val use: Boolean = false, val hotbar: Boolean = false, val drop: Boolean = false, val swapHands: Boolean = false, val pick: Boolean = false)

Gameplay permissions while this UI owns input; text editing temporarily blocks every permission.

Link copied to clipboard

Which input surface a session requests; only one HUD may own interaction.

Link copied to clipboard
sealed interface UiOperationResult

Immediate admission result; accepted remote requests still require an application acknowledgement.

Link copied to clipboard

Native placement of a UI, independent of its retained contents.

Link copied to clipboard

A rejected control request leaves the previously applied state intact.

Link copied to clipboard

Adapter classification of an ordinary screen that may obscure a HUD.

Link copied to clipboard

Execution-owner-confined handle for one retained UI, shared by client and remote event callbacks. Controls requested inside an event are applied after event delivery finishes. Terminal handles never reopen and retain their last applied presentation.

Link copied to clipboard
sealed interface UiSessionStatus

Owner-thread view of presentation admission and terminal lifecycle.

Link copied to clipboard

What happens to a HUD when another ordinary screen is present.

Link copied to clipboard
class UiVisibilityPolicy(val default: UiVisibility = UiVisibility.Hide, categories: Map<UiCategory, UiVisibility> = emptyMap(), screens: Map<UiScreenKind, UiVisibility> = emptyMap())

Immutable HUD rules, resolved by category, then screen kind, then default.