at.turtleme.player.status

turtleme.at

Schema Diff

+4 -0

From

CID
bafyreie7gkhavwi...
Indexed At
2026-09-14 19:34 UTC
View this version

To

CID
bafyreiephziykn7...
Indexed At
2026-09-25 16:39 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 2 non-breaking changes.

Non-Breaking Changes (2)
  • AddedVertex AddedVertex { vertex_id: "at.turtleme.player.status:body.appearOffline" }
  • AddedEdge AddedEdge { src: "at.turtleme.player.status:body", tgt: "at.turtleme.player.status:body.appearOffline", kind: "prop", name: Some("appearOffline") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "at.turtleme.player.status:body.appearOffline" }

Additional Notes

  • Non-breaking: AddedEdge { src: "at.turtleme.player.status:body", tgt: "at.turtleme.player.status:body.appearOffline", kind: "prop", name: Some("appearOffline") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "afloat": {
5 5
      "description": "The player has the game open but is not doing anything in particular.",
6 6
      "type": "token"
7 7
    },
8 8
    "cooking": {
9 9
      "description": "The player is at the range.",
10 10
      "type": "token"
11 11
    },
12 12
    "fishing": {
13 13
      "description": "The player is fishing, by any of the four methods.",
14 14
      "type": "token"
15 15
    },
16 16
    "main": {
17 17
      "description": "A declaration that an account plays turtle meat, and optionally that it is playing right now. Written by the player's own client and not verified by anyone: nothing here affects scoring, so there is nothing to gain by lying in it. Progress that does affect scoring lives in at.turtleme.player.state, which carries a signature.",
18 18
      "key": "literal:self",
19 19
      "record": {
20 20
        "properties": {
21 21
          "activity": {
22 22
            "description": "What the player is doing. Absent means they are not declaring a live session, only that they play.",
23 23
            "knownValues": [
24 24
              "at.turtleme.player.status#afloat",
25 25
              "at.turtleme.player.status#fishing",
26 26
              "at.turtleme.player.status#cooking"
27 27
            ],
28 28
            "type": "string"
29 29
          },
30 +
          "appearOffline": {
31 +
            "description": "Whether the player asks to be shown as offline. A record that sets it carries no activity or durationMinutes, so no reader finds a window open; the flag is here so that the choice follows the player to other clients. Absent means the same as false.",
32 +
            "type": "boolean"
33 +
          },
30 34
          "createdAt": {
31 35
            "description": "When the declaration was written. Client-declared and unverified.",
32 36
            "format": "datetime",
33 37
            "type": "string"
34 38
          },
35 39
          "durationMinutes": {
36 40
            "description": "How long the declared activity should be believed for, counted from createdAt. Presence expires rather than being switched off, because a browser tab that closes badly never gets to write the record that would clear it. A reader treats the player as present only while createdAt plus this duration is still in the future.",
37 41
            "maximum": 1440,
38 42
            "minimum": 1,
39 43
            "type": "integer"
40 44
          },
41 45
          "ranked": {
42 46
            "description": "Whether the player wants to appear on the public leaderboard. This is a request rather than a setting: what actually puts someone on the board is having published at.turtleme.player.state, and deleting that record removes them regardless of what this says.",
43 47
            "type": "boolean"
44 48
          }
45 49
        },
46 50
        "required": [
47 51
          "createdAt"
48 52
        ],
49 53
        "type": "object"
50 54
      },
51 55
      "type": "record"
52 56
    }
53 57
  },
54 58
  "id": "at.turtleme.player.status",
55 59
  "lexicon": 1
56 60
}

Compare Other Versions

Lexicon Garden

@