OverlayLayerStore Module
Per-client, name-keyed overlay layer store (feature 040 US6). Phase 2 ships a skeleton — no validation, no cap enforcement — so downstream wiring can take shape. US6 task T060 adds the FR-026 cap matrix + primitive validation; US6 T061 wires the disconnect-cleanup subscription. Every mutator is keyed on the caller's `clientId`. Clients cannot read or mutate each other's layers; a client disconnect drops all of its layers atomically (wired via `wireDisconnectCleanup`).
Types
| Type | Description |
|
|
Functions and values
| Function or value |
Description
|
|
|
|
|
|
Delete the layer called `layerName` owned by `clientId`. Idempotent: returns `Sent` even when the name isn't present.
|
|
List every layer owned by `clientId`. Returns an empty list when the client has never put a layer (no distinction between absent and empty).
|
Full Usage:
putLayer arg1 clientId layer
Parameters:
T
clientId : Guid
layer : OverlayLayer
Returns: Result<unit, PutLayerError>
|
Atomically create or replace a named layer owned by `clientId`. Phase 2 skeleton: every call succeeds (no validation, no caps). US6 T060 adds the validation and cap checks.
|
|
|
|
O(total-layers) copy of every active layer across every client, pre-sorted for the `HeadlessRenderer` composite pass.
|
|
Subscribe the store to `HubEvent.ScriptingClientDetached` on the supplied event source so client disconnect drops every layer they own in a single atomic store operation. Idempotent — safe to call multiple times (later calls no-op).
|
FSBarV1_Archived