Drop every connection in one call. Used during destruct.
Return the stored value for a schema-declared key, or the
default if the host has not written it. Throws on unknown
keys — declarations live on static clientStateSchema.
Read-only view of the connected Interactive set. To mutate, use
addInteractive / removeInteractive.
Resolve the display portrait URL for this connected identity.
Chain: the identity.portrait setting (empty on a Login, value-
or-unset on an Avatar) → the connected account's Google photo →
empty (the client renders a generated placeholder). Lives here, on
the connection layer, so the portrait is available from the moment
of connection — on a Login (start screen / character-select) as
well as an in-world Avatar.
True iff at least one Interactive is connected.
True iff no Interactives are connected. MUD-style alias for !isConnected().
OptionalonOptionalonPer-connection notification fired after detach.
OptionalonFired when the connection count drops to zero.
OptionalonFired when the connection count rises from zero to one.
Push an authoritative client-state value to every connected
Interactive on this host (server→client client-state-update).
Used after server-initiated mutations (the style verb) so the
client re-renders without waiting on a reconnect snapshot.
Caller is responsible for having already called setClientState
and persisted; this is the push half only.
Remove an Interactive connection. Returns true iff it was present.
Validate key + value against the static schema, then
persist. Throws on unknown keys or when the entry's optional
validator rejects.
Dense snapshot of every declared key (stored or default).
Fed to the client on session-establish via
ConnectionEstablishedPayload.clientState.
Public shape provided by HasInteractiveMixin.
Witness hooks (optional methods) — fire from
ConnectionApi:onConnectionAttached(conn)/onConnectionDetached()— per-connection events, fire on every transfer/detach.onLinkdead()/onLinkRestored()— presence transitions, fire only when the connection count crosses 0/1.