at.atpcraft.player.snapshot

atpcraft.at

Documentation

One snapshot per player per server, endorsed by one or more ATPcraft servers. Any trusted server's endorsement is accepted on read; on write a server adds or refreshes its own endorsement. The record key is the server's signing key id.

main record

One snapshot per player per server, endorsed by one or more ATPcraft servers. Any trusted server's endorsement is accepted on read; on write a server adds or refreshes its own endorsement. The record key is the server's signing key id.

Record Key any Any valid record key

Properties

endorsements array of ref #endorsement Required

Server signatures over the canonical snapshot payload.

maxLength: 64 itemsminLength: 1 items
issuedAt string datetime Required

Snapshot creation time.

version integer Required

Monotonically increasing snapshot version (anti-rollback).

minimum: 1
View raw schema
{
  "key": "any",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "version",
      "issuedAt",
      "summary",
      "aspects",
      "endorsements"
    ],
    "properties": {
      "aspects": {
        "type": "array",
        "items": {
          "ref": "at.atpcraft.player.defs#aspect",
          "type": "ref"
        },
        "maxLength": 16,
        "description": "Opaque aspect payloads, sorted by name, names unique."
      },
      "summary": {
        "ref": "at.atpcraft.player.defs#summary",
        "type": "ref"
      },
      "version": {
        "type": "integer",
        "minimum": 1,
        "description": "Monotonically increasing snapshot version (anti-rollback)."
      },
      "issuedAt": {
        "type": "string",
        "format": "datetime",
        "description": "Snapshot creation time."
      },
      "endorsements": {
        "type": "array",
        "items": {
          "ref": "#endorsement",
          "type": "ref"
        },
        "maxLength": 64,
        "minLength": 1,
        "description": "Server signatures over the canonical snapshot payload."
      }
    }
  },
  "description": "One snapshot per player per server, endorsed by one or more ATPcraft servers. Any trusted server's endorsement is accepted on read; on write a server adds or refreshes its own endorsement. The record key is the server's signing key id."
}
endorsement object

No description available.

Properties

alg string Required

Signature algorithm.

maxLength: 32 bytes
Known values: ed25519
server string Required

Signing server key id.

maxLength: 64 bytes
sig bytes Required

Ed25519 signature (64 bytes) over the canonical payload.

maxLength: 64
View raw schema
{
  "type": "object",
  "required": [
    "server",
    "alg",
    "sig"
  ],
  "properties": {
    "alg": {
      "type": "string",
      "maxLength": 32,
      "description": "Signature algorithm.",
      "knownValues": [
        "ed25519"
      ]
    },
    "sig": {
      "type": "bytes",
      "maxLength": 64,
      "description": "Ed25519 signature (64 bytes) over the canonical payload."
    },
    "server": {
      "type": "string",
      "maxLength": 64,
      "description": "Signing server key id."
    }
  }
}

Lexicon Garden

@