pet.trezy.getPreferences

trezy.pet

Documentation

Everything the caller's account knows about how to present the game: the account-wide default, and every device that has been given its own text style. Takes no DID — it answers for whoever is authenticated and nobody else. ⚠ IT RETURNS THE WHOLE PICTURE RATHER THAN AN ANSWER, deliberately: which of these applies depends on which device is asking and what its browser still remembers, and that reconciliation lives in one tested place on the client (src/lib/preferences.ts) instead of being half here and half there.

main query

Everything the caller's account knows about how to present the game: the account-wide default, and every device that has been given its own text style. Takes no DID — it answers for whoever is authenticated and nobody else. ⚠ IT RETURNS THE WHOLE PICTURE RATHER THAN AN ANSWER, deliberately: which of these applies depends on which device is asking and what its browser still remembers, and that reconciliation lives in one tested place on the client (src/lib/preferences.ts) instead of being half here and half there.

Output

Encodingapplication/json
devices array Optional

Every device with its own text style. Empty for almost everybody: a row exists only where the player deliberately chose one.

error string Optional

Present instead of the preferences when there are none to send. A stable machine code the client branches on — add codes, never rename them. `unavailable` means the read failed and the answer is UNKNOWN, which a client must not treat as 'no preferences': pushing over state it could not read is how an outage destroys a real setting. `no-space` means this player has never saved anything, which is an ordinary empty answer.

Known values: not-authenticated, unavailable
message string Optional

No description available.

typeMode string Optional

The account-wide default. Absent when the player has never set one — which is NOT the same as the default mode, and is what tells a new device to keep its own.

Known values: pixel, softer, system
typeOffered boolean Optional

No description available.

updatedAt stringdatetime Optional

An RFC 3339 formatted timestamp.

Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://api.bsky.social)
View raw schema
{
  "type": "query",
  "output": {
    "schema": {
      "type": "object",
      "required": [],
      "properties": {
        "error": {
          "type": "string",
          "description": "Present instead of the preferences when there are none to send. A stable machine code the client branches on — add codes, never rename them. `unavailable` means the read failed and the answer is UNKNOWN, which a client must not treat as 'no preferences': pushing over state it could not read is how an outage destroys a real setting. `no-space` means this player has never saved anything, which is an ordinary empty answer.",
          "knownValues": [
            "not-authenticated",
            "unavailable"
          ]
        },
        "devices": {
          "type": "array",
          "items": {
            "ref": "#device",
            "type": "ref"
          },
          "description": "Every device with its own text style. Empty for almost everybody: a row exists only where the player deliberately chose one."
        },
        "message": {
          "type": "string"
        },
        "typeMode": {
          "type": "string",
          "description": "The account-wide default. Absent when the player has never set one — which is NOT the same as the default mode, and is what tells a new device to keep its own.",
          "knownValues": [
            "pixel",
            "softer",
            "system"
          ]
        },
        "updatedAt": {
          "type": "string",
          "format": "datetime"
        },
        "typeOffered": {
          "type": "boolean"
        }
      }
    },
    "encoding": "application/json"
  },
  "description": "Everything the caller's account knows about how to present the game: the account-wide default, and every device that has been given its own text style. Takes no DID — it answers for whoever is authenticated and nobody else. ⚠ IT RETURNS THE WHOLE PICTURE RATHER THAN AN ANSWER, deliberately: which of these applies depends on which device is asking and what its browser still remembers, and that reconciliation lives in one tested place on the client (src/lib/preferences.ts) instead of being half here and half there."
}
device object

No description available.

Properties

deviceId string Required

The record key. Opaque and randomly generated by the browser; it carries nothing about the device or the person.

fingerprint string Optional

Returned so the asking device can re-find its own row after its local storage was cleared. It is the player's own data and goes nowhere else.

label string Optional

No description available.

lastSeenAt string datetime Optional

An RFC 3339 formatted timestamp.

typeMode string Required

No description available.

Known values: pixel, softer, system
updatedAt string datetime Optional

An RFC 3339 formatted timestamp.

View raw schema
{
  "type": "object",
  "required": [
    "deviceId",
    "typeMode"
  ],
  "properties": {
    "label": {
      "type": "string"
    },
    "deviceId": {
      "type": "string",
      "description": "The record key. Opaque and randomly generated by the browser; it carries nothing about the device or the person."
    },
    "typeMode": {
      "type": "string",
      "knownValues": [
        "pixel",
        "softer",
        "system"
      ]
    },
    "updatedAt": {
      "type": "string",
      "format": "datetime"
    },
    "lastSeenAt": {
      "type": "string",
      "format": "datetime"
    },
    "fingerprint": {
      "type": "string",
      "description": "Returned so the asking device can re-find its own row after its local storage was cleared. It is the player's own data and goes nowhere else."
    }
  }
}

Lexicon Garden

@