pet.trezy.getStats
Schema Diff
+10 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "pet.trezy.getStats:output.asleep" }
- AddedVertex AddedVertex { vertex_id: "pet.trezy.getStats:output.wakesAt" }
- AddedEdge AddedEdge { src: "pet.trezy.getStats:output", tgt: "pet.trezy.getStats:output.asleep", kind: "prop", name: Some("asleep") }
- AddedEdge AddedEdge { src: "pet.trezy.getStats:output", tgt: "pet.trezy.getStats:output.wakesAt", kind: "prop", name: Some("wakesAt") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "pet.trezy.getStats:output.asleep" }AddedVertex { vertex_id: "pet.trezy.getStats:output.wakesAt" }
Additional Notes
- Non-breaking: AddedEdge { src: "pet.trezy.getStats:output", tgt: "pet.trezy.getStats:output.asleep", kind: "prop", name: Some("asleep") }
- Non-breaking: AddedEdge { src: "pet.trezy.getStats:output", tgt: "pet.trezy.getStats:output.wakesAt", kind: "prop", name: Some("wakesAt") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"output": {
6
6
"encoding": "application/json",
7
7
"schema": {
8
8
"properties": {
9
+
"asleep": {
10
+
"description": "Whether this pet's species is inside one of its published sleep windows right now, in which case createInteraction refuses a feed or a pet with the \"asleep\" code. Reported for the same reason the cooldown fields are: so the client disables the button on the real rule rather than on a copy it keeps itself and discovers is wrong by being refused.",
11
+
"type": "boolean"
12
+
},
9
13
"error": {
10
14
"type": "string"
11
15
},
12
16
"feedCooldownRemaining": {
13
17
"description": "Seconds until this pet can be fed again, or 0 if it can be now. Reported so the client can show a countdown and disable the button on the real rule, rather than on a copy of the cooldown it keeps itself and discovers is wrong by being refused.",
14
18
"minimum": 0,
15
19
"type": "integer"
16
20
},
17
21
"happiness": {
18
22
"type": "integer"
19
23
},
20
24
"happinessPips": {
21
25
"items": {
22
26
"type": "integer"
23
27
},
24
28
"type": "array"
25
29
},
26
30
"hunger": {
27
31
"type": "integer"
28
32
},
29
33
"hungerPips": {
30
34
"items": {
31
35
"type": "integer"
32
36
},
33
37
"type": "array"
34
38
},
35
39
"interactionCooldown": {
36
40
"description": "The full cooldown length in seconds, from pet.trezy.gameConfig. Lets a client start a countdown the instant it acts, without waiting a round trip and without hardcoding the number.",
37
41
"minimum": 1,
38
42
"type": "integer"
39
43
},
40
44
"level": {
41
45
"type": "integer"
42
46
},
43
47
"petCooldownRemaining": {
44
48
"description": "Seconds until this pet can be petted again, or 0 if it can be now.",
45
49
"minimum": 0,
46
50
"type": "integer"
47
51
},
48
52
"totalInteractions": {
49
53
"type": "integer"
54
+
},
55
+
"wakesAt": {
56
+
"description": "The GAME HOUR this pet wakes, absent when it is awake. ⚠ A GAME HOUR AND NOT A TIMESTAMP: a client wanting a countdown has dayLengthSeconds and can do the arithmetic, while an instant would be a second encoding of the same fact and the two could disagree.",
57
+
"maximum": 23,
58
+
"minimum": 0,
59
+
"type": "integer"
50
60
}
51
61
},
52
62
"type": "object"
53
63
}
54
64
},
55
65
"parameters": {
56
66
"properties": {
57
67
"did": {
58
68
"format": "did",
59
69
"type": "string"
60
70
},
61
71
"pet": {
62
72
"format": "at-uri",
63
73
"type": "string"
64
74
}
65
75
},
66
76
"required": [
67
77
"did",
68
78
"pet"
69
79
],
70
80
"type": "params"
71
81
},
72
82
"type": "query"
73
83
}
74
84
},
75
85
"id": "pet.trezy.getStats",
76
86
"lexicon": 1
77
87
}