at.atpcraft.server.profile

atpcraft.at

Documentation

The server's self-description. Exactly one per server account; the record key is always 'self'. Written into the server account's own repo (PDS-authenticated), so no per-record signature is required.

main record

The server's self-description. Exactly one per server account; the record key is always 'self'. Written into the server account's own repo (PDS-authenticated), so no per-record signature is required.

Record Key literal:self Fixed literal value

Properties

address string Optional

Public address players connect to, e.g. play.example.com:25565.

maxLength: 256 bytes
atpcraftVersion string Required

ATPcraft mod version, read at runtime from the Fabric mod metadata.

maxLength: 32 bytes
capabilities array of string Optional

Enabled ATPcraft features, sorted, unique.

maxLength: 32 items
createdAt string datetime Optional

When the server account first published its descriptor.

description string Optional

Free-text server description / MOTD.

maxLength: 2048 bytes
minecraftVersion string Required

Minecraft version the server runs, read at runtime.

maxLength: 32 bytes
name string Required

Server display name.

maxLength: 256 bytes
operator ref #operator Optional

No description available.

signingKey ref #signingKey Required

No description available.

updatedAt string datetime Required

Record update time (refreshed on every publish).

View raw schema
{
  "key": "literal:self",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "name",
      "minecraftVersion",
      "atpcraftVersion",
      "signingKey",
      "updatedAt"
    ],
    "properties": {
      "name": {
        "type": "string",
        "maxLength": 256,
        "description": "Server display name."
      },
      "address": {
        "type": "string",
        "maxLength": 256,
        "description": "Public address players connect to, e.g. play.example.com:25565."
      },
      "operator": {
        "ref": "#operator",
        "type": "ref"
      },
      "createdAt": {
        "type": "string",
        "format": "datetime",
        "description": "When the server account first published its descriptor."
      },
      "updatedAt": {
        "type": "string",
        "format": "datetime",
        "description": "Record update time (refreshed on every publish)."
      },
      "signingKey": {
        "ref": "#signingKey",
        "type": "ref"
      },
      "description": {
        "type": "string",
        "maxLength": 2048,
        "description": "Free-text server description / MOTD."
      },
      "capabilities": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 64,
          "knownValues": [
            "join-gate",
            "player-data-sync",
            "skin-sync",
            "labeler",
            "rpg-actor"
          ]
        },
        "maxLength": 32,
        "description": "Enabled ATPcraft features, sorted, unique."
      },
      "atpcraftVersion": {
        "type": "string",
        "maxLength": 32,
        "description": "ATPcraft mod version, read at runtime from the Fabric mod metadata."
      },
      "minecraftVersion": {
        "type": "string",
        "maxLength": 32,
        "description": "Minecraft version the server runs, read at runtime."
      }
    }
  },
  "description": "The server's self-description. Exactly one per server account; the record key is always 'self'. Written into the server account's own repo (PDS-authenticated), so no per-record signature is required."
}
operator object

Optional operator/contact details for server directories and discovery.

Properties

contact string Optional

Free-text contact (email or handle).

maxLength: 256 bytes
did string did Optional

Operator's ATProto DID (the server account's own DID by default).

handle string Optional

Operator's handle.

maxLength: 256 bytes
website string uri Optional

Operator/server website.

maxLength: 2048 bytes
View raw schema
{
  "type": "object",
  "properties": {
    "did": {
      "type": "string",
      "format": "did",
      "description": "Operator's ATProto DID (the server account's own DID by default)."
    },
    "handle": {
      "type": "string",
      "maxLength": 256,
      "description": "Operator's handle."
    },
    "contact": {
      "type": "string",
      "maxLength": 256,
      "description": "Free-text contact (email or handle)."
    },
    "website": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048,
      "description": "Operator/server website."
    }
  },
  "description": "Optional operator/contact details for server directories and discovery."
}
signingKey object

The server's Ed25519 endorsement public key. Consumers resolve a player record's endorsement keyId (the 'server' field) to this key to verify snapshot/skin endorsements without out-of-band key sharing.

Properties

alg string Required

Signature algorithm.

maxLength: 32 bytes
Known values: ed25519
keyId string Required

Signing key id: first 16 base64url chars of SHA-256 over the public key. Matches the 'server' field in player endorsements.

maxLength: 64 bytes
publicKey string Required

Base64 (standard) X.509/SPKI-encoded Ed25519 public key.

maxLength: 256 bytes
View raw schema
{
  "type": "object",
  "required": [
    "keyId",
    "publicKey",
    "alg"
  ],
  "properties": {
    "alg": {
      "type": "string",
      "maxLength": 32,
      "description": "Signature algorithm.",
      "knownValues": [
        "ed25519"
      ]
    },
    "keyId": {
      "type": "string",
      "maxLength": 64,
      "description": "Signing key id: first 16 base64url chars of SHA-256 over the public key. Matches the 'server' field in player endorsements."
    },
    "publicKey": {
      "type": "string",
      "maxLength": 256,
      "description": "Base64 (standard) X.509/SPKI-encoded Ed25519 public key."
    }
  },
  "description": "The server's Ed25519 endorsement public key. Consumers resolve a player record's endorsement keyId (the 'server' field) to this key to verify snapshot/skin endorsements without out-of-band key sharing."
}

Lexicon Garden

@