Docs: skills/README/CHANGELOG for effects client rewrite
- scenarios.md rewritten for server-side execution + effects API - realtime.md deleted; realtime/planstore references purged from docs - CHANGELOG Unreleased: major bump + migration table
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: rudder-csharp-sdk
|
||||
description: Use when working with the Rudder C# SDK Rudder.Core (namespace RudderSdk.Core) — client init, transports, auth/session lifecycle, and the per-domain services (player, stores, inventory, battle pass, quests, leaderboards, remote config, scenarios, storage, realtime).
|
||||
description: Use when working with the Rudder C# SDK Rudder.Core (namespace RudderSdk.Core) — client init, transports, auth/session lifecycle, and the per-domain services (player, stores, inventory, battle pass, quests, leaderboards, remote config, scenario trigger, scenario effects, storage).
|
||||
---
|
||||
|
||||
# Rudder C# SDK (Rudder.Core)
|
||||
@@ -43,8 +43,8 @@ full options surface and the abstraction interfaces):
|
||||
- `DeviceIdProvider` → `GuidDeviceIdProvider` (new GUID per run — plug a
|
||||
persistent `IDeviceIdProvider` for production)
|
||||
|
||||
`RealtimeUrl` + `RealtimeTransportFactory` are required only for
|
||||
`client.Realtime`; there is no default websocket transport in Rudder.Core.
|
||||
`Clock` defaults to `DateTimeOffset.UtcNow`; override in tests. There is no
|
||||
realtime websocket client in Rudder.Core.
|
||||
|
||||
## Request pipeline (applies to every service)
|
||||
|
||||
@@ -58,7 +58,7 @@ full options surface and the abstraction interfaces):
|
||||
failures throw `RudderNetworkException` (`StatusCode == 0`). See
|
||||
reference/errors.md.
|
||||
- `client.Update(deltaTime)` must be called every frame — it pumps the
|
||||
scenario runtime (wait-node deadlines) and the realtime transport.
|
||||
effects client (30s pending heartbeat and wait-node deadline checks).
|
||||
|
||||
## Capability map
|
||||
|
||||
@@ -74,19 +74,19 @@ full options surface and the abstraction interfaces):
|
||||
| Stores and offer purchases | `client.Stores` | reference/stores.md |
|
||||
| Leaderboards | `client.Leaderboards.FindBySlug(slug)` | reference/leaderboards.md |
|
||||
| Inventory | `client.Inventory` | reference/inventory.md |
|
||||
| Battle pass | `client.BattlePass` (+ scenario session) | reference/battlepass.md |
|
||||
| Battle pass | `client.BattlePass` (+ scenario effect) | reference/battlepass.md |
|
||||
| Quests (global) | `client.Quests` | reference/quests.md |
|
||||
| Scenarios (event-driven plans, node sessions) | `client.Scenario` | reference/scenarios.md |
|
||||
| Realtime websocket | `client.Realtime` | reference/realtime.md |
|
||||
| Scenario trigger | `client.Scenario` | reference/scenarios.md |
|
||||
| Scenario effects | `client.Effects.On*` | reference/scenarios.md |
|
||||
|
||||
Important cross-cutting facts:
|
||||
|
||||
- Battle pass state is tied to a scenario battle-pass node: every
|
||||
`BattlePassService` call carries `ScenarioId`/`NodeId` (mutations also
|
||||
`RunId`). During a scenario run, `BattlePassSession` supplies them — prefer
|
||||
the session API inside a run.
|
||||
`RunId`). During a scenario run, `BattlePassEffect` supplies them — prefer
|
||||
the effect API inside a run.
|
||||
- Global quests (`client.Quests`) are distinct from scenario quest nodes
|
||||
(`Scenario.OnQuest` → `QuestSession`).
|
||||
(`Effects.OnQuest` → `QuestEffect`).
|
||||
- Mutations that take an idempotency key auto-generate a random GUID when the
|
||||
key is omitted (`Stores.PurchaseAsync`, `ProjectStorage.SaveAsync`,
|
||||
`BattlePass.PurchasePremiumAsync`). Pass a stable key to make retries safe.
|
||||
@@ -96,10 +96,10 @@ Important cross-cutting facts:
|
||||
## Relationship to the Unity package (rudder.sdk)
|
||||
|
||||
`rudder.sdk` (UPM, liveops-unity-sdk) wraps `Rudder.Core.dll` with Unity
|
||||
adapters: `UnityWebRequest` transport, `PlayerPrefs` token store, a websocket
|
||||
realtime transport, and a `Rudder` bootstrap component
|
||||
(`RudderSdk.Unity` namespace). The domain services and models are the same
|
||||
ones documented here — for Unity games, consume them through the package's
|
||||
adapters instead of wiring `RudderClientOptions` by hand. Unity requires
|
||||
adapters: `UnityWebRequest` transport, `PlayerPrefs` token store, and a
|
||||
`Rudder` bootstrap component (`RudderSdk.Unity` namespace). The domain
|
||||
services and models are the same ones documented here — for Unity games,
|
||||
consume them through the package's adapters instead of wiring
|
||||
`RudderClientOptions` by hand. Unity requires
|
||||
`com.unity.nuget.newtonsoft-json` since Rudder.Core serializes with
|
||||
Newtonsoft.Json.
|
||||
|
||||
Reference in New Issue
Block a user