Package-level declarations

Types

Link copied to clipboard

Stable schemas for standard declaration projections. Wire consumers negotiate type, never this enum's ordinal or a Kotlin class name.

Link copied to clipboard
class DeclarationProjection<P>(val type: ProjectionType, properties: P, val inputEnabled: Boolean = true, encode: (P, ProjectionScope) -> ProjectionValue)

Opt-in typed projection of an element or active modifier description. Properties and the encoder remain local; only the encoder's detached value crosses the transport. Local rendering never requires a projection or a remote registry entry.

Link copied to clipboard
class ProjectionAction<T : Any>(val type: ProjectionType, decode: (ProjectionValue) -> T, handle: UiSession.(T) -> Unit)

Server-owned typed event endpoint. The decoder validates untrusted detached data before the handler receives a value. The runtime owns this endpoint only while its declaring node and generation remain active.

Link copied to clipboard
class ProjectionBinding<T : Any>(val type: ProjectionType, val identity: Any, val read: () -> T, val encode: (T) -> ProjectionValue, val decode: (ProjectionValue) -> T, val write: UiSession.(T) -> Unit)

Typed owner-thread binding between a server-owned value and an optimistic client control. identity is a stable referential key, normally the caller-owned state object, and is never serialized. Reads and encoding occur during declaration projection; decoding validates input before write can run. The write callback runs only inside the server's ordinary input boundary.

Link copied to clipboard

Strict positional schema reader used at the transport and extension boundaries. Consumers must call finish so extra fields cannot silently alter protocol meaning.

Link copied to clipboard

Detached standard input properties shared by declaration projections and installed client adapters. Decoders reject malformed variants, ranges, and trailing fields before handlers run. The enclosing transport owns aggregate byte, collection, and nesting limits.

Link copied to clipboard
interface ProjectionScope

Callback-lifetime capability for projecting one retained declaration. Implementations scope registered actions to the current session, node, and generation. Projection callbacks must not retain this scope or mutate authoritative state.

Link copied to clipboard

Shared scroll binding schema used by viewports and their independently placed scrollbar references. Geometry stays client-local; current offsets and explicit server navigation use ordinary binding generations.

Link copied to clipboard
data class ProjectionType(val name: ResourceId, val version: Int = 1)

Versioned, platform-neutral declaration or event schema shared by both endpoints. A name identifies a schema, never a JVM class or executable factory supplied by a peer.

Link copied to clipboard
sealed interface ProjectionValue

Detached immutable data admitted at a declaration projection boundary. Values contain no state sources, handlers, platform objects, or executable code. A transport must bound encoded sizes and nesting before allocating incoming values.

Link copied to clipboard

Registration boundary for portable standard modifier implementations owned by the API module. Decoders validate complete property records and construct ordinary active modifiers; no retained node is shared. Parent data remains private to the standard consuming layout and is never exposed as a public settings object.

Link copied to clipboard

Trusted reconstruction boundary reusing the standard viewport layout and sampled tile renderer. Source identity is stable for one immutable geometry generation; children retain their remote declaration identities.