Create a Wuzzlo game session
**Direction:** Operator → Wuzzlo
Creates a player session and returns a playable Wuzzlo game or lobby URL.
### Processing order
1. **Build the JSON payload** with `operatorId`, `userId`, `username`, and `gameId`.
2. **Sign the exact UTF-8 JSON bytes** with the operator private key.
3. **Send the Base64 signature** in the `Signature` header.
4. **Store the returned URL and expiry** for the player session.
### Response contract
| Scenario | HTTP | Body status | Result |
| --- | ---: | ---: | --- |
| Game or lobby launch succeeds | `200` | `0` | Returns `gameUrl` and `expiresAtUtc` |
| Operator is invalid | `200` | `3` | No game URL |
| Game is invalid | `200` | `4` | No game URL |
### Launch notes
- Use `gameId: "9000"` to open the lobby.
- `X-Request-Id` is optional; Wuzzlo generates one when omitted.
> **Security:** Never send the operator private key. Only send the signature generated from the exact request body.
Authentication
Signaturestring
Operator-to-Wuzzlo: Base64 RSA-SHA256 PKCS#1 v1.5 signature of the exact UTF-8 JSON body, created with the operator private key.
Headers
X-Request-Id
Optional request correlation id for operator login. If omitted, GameService generates one internally.
Request
This endpoint expects an object.
operatorId
userId
username
gameId
currency
clientIp
Response
Business success or business error encoded in the response body
requestId
status
errorDescription
gameUrl
expiresAtUtc