# blue.atplay.slot

> Published by [atplay.blue](https://lexicon.garden/identity/did:plc:lik422i3z6y2skcik5uo2vrl)

✓ This is the authoritative definition for this NSID.

## Description

A runnable web/WASM game, published as a Signed Web Bundle blob.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:lik422i3z6y2skcik5uo2vrl/blue.atplay.slot)
- [Documentation](https://lexicon.garden/lexicon/did:plc:lik422i3z6y2skcik5uo2vrl/blue.atplay.slot/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:lik422i3z6y2skcik5uo2vrl/blue.atplay.slot/examples)

## Definitions

### `blue.atplay.slot`

**Type**: `record`

The record key is the game's stable slug (DNS-safe [a-z0-9-], up to 63 chars); updates reuse it.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `game` | `string` (at-uri) | No | Optional at-uri of the games.gamesgamesgamesgames.game catalog entry this is a build of. |
| `entry` | `string` | Yes | Entry path within the bundle. |
| `title` | `string` | Yes |  |
| `bundle` | `blob` | Yes | The Signed Web Bundle (.swbn). |
| `version` | `string` | Yes | Version string, matching the bundle's web app manifest. |
| `channels` | `array` | No | Update channels for this version. |
| `bundleKey` | `string` (did) | Yes | did:key of the Ed25519 bundle-signing key. |
| `createdAt` | `string` (datetime) | Yes |  |
| `iwaOrigin` | `string` | Yes | The isolated-app:// origin derived from bundleKey. |
| `thumbnail` | `blob` | No | Cover image. |
| `signatures` | `array` | No | Optional inline attestations binding the bundle key to the author. |

### `blue.atplay.slot#inlineSig`

**Type**: `object`

An ECDSA (low-S) signature over this record's dag-cbor CID, with `signatures` removed.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `key` | `string` (did) | Yes | Signer did:key (P-256 or secp256k1). |
| `sig` | `bytes` | Yes | 64-byte r\|\|s signature. |
| `contentCid` | `string` (cid) | Yes |  |
| `repository` | `string` (did) | Yes |  |

## Raw Schema

```json
{
  "id": "blue.atplay.slot",
  "defs": {
    "main": {
      "key": "any",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "title",
          "version",
          "entry",
          "bundle",
          "bundleKey",
          "iwaOrigin",
          "createdAt"
        ],
        "properties": {
          "game": {
            "type": "string",
            "format": "at-uri",
            "description": "Optional at-uri of the games.gamesgamesgamesgames.game catalog entry this is a build of."
          },
          "entry": {
            "type": "string",
            "default": "/index.html",
            "maxLength": 512,
            "description": "Entry path within the bundle."
          },
          "title": {
            "type": "string",
            "maxLength": 1200,
            "maxGraphemes": 120
          },
          "bundle": {
            "type": "blob",
            "accept": [
              "application/webbundle"
            ],
            "maxSize": 104857600,
            "description": "The Signed Web Bundle (.swbn)."
          },
          "version": {
            "type": "string",
            "maxLength": 32,
            "description": "Version string, matching the bundle's web app manifest."
          },
          "channels": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 64
            },
            "default": [
              "default"
            ],
            "description": "Update channels for this version."
          },
          "bundleKey": {
            "type": "string",
            "format": "did",
            "description": "did:key of the Ed25519 bundle-signing key."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime"
          },
          "iwaOrigin": {
            "type": "string",
            "maxLength": 128,
            "description": "The isolated-app:// origin derived from bundleKey."
          },
          "thumbnail": {
            "type": "blob",
            "accept": [
              "image/png",
              "image/jpeg",
              "image/webp"
            ],
            "maxSize": 2000000,
            "description": "Cover image."
          },
          "signatures": {
            "type": "array",
            "items": {
              "ref": "#inlineSig",
              "type": "ref"
            },
            "description": "Optional inline attestations binding the bundle key to the author."
          }
        }
      },
      "description": "The record key is the game's stable slug (DNS-safe [a-z0-9-], up to 63 chars); updates reuse it."
    },
    "inlineSig": {
      "type": "object",
      "required": [
        "repository",
        "key",
        "sig",
        "contentCid"
      ],
      "properties": {
        "key": {
          "type": "string",
          "format": "did",
          "description": "Signer did:key (P-256 or secp256k1)."
        },
        "sig": {
          "type": "bytes",
          "maxLength": 64,
          "description": "64-byte r||s signature."
        },
        "contentCid": {
          "type": "string",
          "format": "cid"
        },
        "repository": {
          "type": "string",
          "format": "did"
        }
      },
      "description": "An ECDSA (low-S) signature over this record's dag-cbor CID, with `signatures` removed."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "A runnable web/WASM game, published as a Signed Web Bundle blob."
}
```
