pet.trezy.getPreferences
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.
Details · query
| Kind | query |
|---|---|
| Authority | trezy.pet |
| Indexed |
Query
query · GETOutput
application/jsondevices
arrayEvery device with its own text style. Empty for almost everybody: a row exists only where the player deliberately chose one.
error
stringPresent 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
featureOffered
booleanAccount-scope only.
message
stringtypeMode
stringThe 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
typeOffered
booleanupdatedAt
string · datetime#device
objectProperties
The record key. Opaque and randomly generated by the browser; it carries nothing about the device or the person.
fingerprint
stringReturned 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
stringlastSeenAt
string · datetimeknownValues: pixel | softer | system
updatedAt
string · datetimeSimilar lexicons
semantic matchLexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
pet.trezy.devicePreference
record -
pet.trezy.setPreferences
procedureSave a text style, either for the whole account or for one device. ⚠ `scope` IS REQUIRED AND HAS NO DEFAULT. Guessing it is the one mistake that cannot be undone by guessing again: silently defaulting to `account` changes the typeface on every device somebody owns when they meant to change one, and silently defaulting to `device` leaves them wondering why their laptop never followed. The client always knows which the player asked for, because the player was asked.
-
pet.trezy.preferences
record -
Get private preferences attached to the current account. Expected use is synchronization between multiple devices, and import/export during account migration. Requires auth.