> ## Documentation Index
> Fetch the complete documentation index at: https://docs.summerengine.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SummerWorldChannel

> An admitted participant's private handle to a World channel.

**Class:** `SummerWorldChannel` · **Inherits:** RefCounted

An admitted participant's private handle to a World channel.

Open through [`Summer.client.channels`](/api-reference/gdscript/client#channels). A handle stays bound to its original admission and never retargets after leave or reconnect into another World. Games own the UI. The Engine initially publishes the newest two authorized messages, ordered by sequence; explicit older history expands the window to at most sixteen. Invalidation clears that window immediately and reloads the newest two. History is best effort, not a lossless event log. Keep UI text synchronized with [`history_changed`](/api-reference/gdscript/types/world-channel#history_changed) and treat text as plain text, not markup. A receipt proves acceptance, not incoming delivery.

## Methods

### get\_channel\_key

```gdscript theme={null}
func get_channel_key() -> String const
```

Returns the original channel key.

**Returns:** String

### get\_messages

```gdscript theme={null}
func get_messages() -> SummerChannelMessage[] const
```

Returns a copy of the current authorized bounded window in ascending sequence order. Returns an empty array while invalidated or closed. Cached bodies expire at their known expiry.

**Returns:** [`SummerChannelMessage`](/api-reference/gdscript/types/channel-message)\[]

### is\_closed

```gdscript theme={null}
func is_closed() -> bool const
```

Whether this handle has permanently closed.

**Returns:** bool

### is\_history\_loaded

```gdscript theme={null}
func is_history_loaded() -> bool const
```

Whether at least one authorized page has loaded. Check [`is_history_current()`](/api-reference/gdscript/types/world-channel#is_history_current) before displaying it.

**Returns:** bool

### is\_history\_current

```gdscript theme={null}
func is_history_current() -> bool const
```

Whether the window satisfies the latest hint and recovery generation under the current admission.

**Returns:** bool

### send\_message

```gdscript theme={null}
func send_message(text: String) -> SummerChannelSendOperation
```

Sends plain Unicode text, up to 4000 characters, through the current Player Host. An ambiguous failure does not prove rejection; retry the returned operation to retain its original idempotency identity.

| Parameter | Type | Default |
| - | - | - |
| `text` | String | required |

**Returns:** [`SummerChannelSendOperation`](/api-reference/gdscript/types/channel-send-operation)

Returns at once. Wait for the result with `var result: SummerResult = await op.get_result_or_completed_signal()`; see [SummerOperation](/api-reference/gdscript/types/operation).

### refresh

```gdscript theme={null}
func refresh() -> SummerChannelMessagesOperation
```

Reads the newest authorized page. Only one history read may be pending. Use this after [`history_failed`](/api-reference/gdscript/types/world-channel#history_failed) to request recovery.

**Returns:** [`SummerChannelMessagesOperation`](/api-reference/gdscript/types/channel-messages-operation)

Returns at once. Wait for the result with `var result: SummerResult = await op.get_result_or_completed_signal()`; see [SummerOperation](/api-reference/gdscript/types/operation).

### load\_older

```gdscript theme={null}
func load_older() -> SummerChannelMessagesOperation
```

Reads the next older page at the current revision, up to the sixteen-message window bound. Older history never emits an incoming-message burst. Fails when no older cursor exists, a read is pending, the window is full, or history is dirty.

**Returns:** [`SummerChannelMessagesOperation`](/api-reference/gdscript/types/channel-messages-operation)

Returns at once. Wait for the result with `var result: SummerResult = await op.get_result_or_completed_signal()`; see [SummerOperation](/api-reference/gdscript/types/operation).

### close

```gdscript theme={null}
func close() -> void
```

Idempotently closes the local subscription, clears cached bodies, and fences pending operations. Does not delete backend history or change World membership.

**Returns:** void

## Signals

### message\_received

```gdscript theme={null}
signal message_received(message: SummerChannelMessage)
```

A newly observed message from a subsequent newest-page refresh. Initial and explicitly requested older history are excluded. Messages are ordered within each newest-page batch; visibility changes may expose previously unseen older messages in a later batch. Delivery is deduplicated within a bounded local history; it is not exactly once across lifetimes.

### history\_changed

```gdscript theme={null}
signal history_changed()
```

The visible history was replaced, invalidated, extended, or expired. Read [`get_messages()`](/api-reference/gdscript/types/world-channel#get_messages) again.

### history\_failed

```gdscript theme={null}
signal history_failed(result: SummerResult)
```

A history read failed. Authorization errors are never converted to empty history. Call [`refresh()`](/api-reference/gdscript/types/world-channel#refresh) to retry explicitly.

### closed

```gdscript theme={null}
signal closed(reason: String)
```

This handle closed and cannot be reused. Admission teardown revokes the handle immediately and delivers this notification after teardown unwinds, allowing handlers to start a successor session safely.

***

What is live on the platform today: [platform capability status](/knowledge-base/source-status). Check availability at runtime before you offer a feature.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.