at.turtleme.player.status
Schema Diff
+4 -0
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
}