pet.trezy.createInteraction
Schema Diff
+7 -2
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 2 non-breaking changes.
Breaking Changes (1)
- ConstraintTightened ConstraintTightened { vertex_id: "pet.trezy.createInteraction:output.error", sort: "knownValues", old_value: "[\"invalid-type\",\"not-your-pet\",\"cooldown\"]", new_value: "[\"invalid-type\",\"not-your-pet\",\"cooldown\",\"asleep\"]" }
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "pet.trezy.createInteraction:input.drop" }
- AddedEdge AddedEdge { src: "pet.trezy.createInteraction:input", tgt: "pet.trezy.createInteraction:input.drop", kind: "prop", name: Some("drop") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "pet.trezy.createInteraction:input.drop" }
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "pet.trezy.createInteraction:output.error", sort: "knownValues", old_value: "[\"invalid-type\",\"not-your-pet\",\"cooldown\"]", new_value: "[\"invalid-type\",\"not-your-pet\",\"cooldown\",\"asleep\"]" }
Additional Notes
- Non-breaking: AddedEdge { src: "pet.trezy.createInteraction:input", tgt: "pet.trezy.createInteraction:input.drop", kind: "prop", name: Some("drop") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"input": {
6
6
"encoding": "application/json",
7
7
"schema": {
8
8
"properties": {
9
+
"drop": {
10
+
"description": "The rkey of a pet.trezy.foodDrop being consumed by this feed. OPTIONAL: petting carries none, and neither does a feed from the legacy button. ⚠ THE MORSEL IS DELETED ONLY AFTER THE ACTIVITY RECORD HAS SAVED, never before. Deleting first would let a refused feed take the food with it — which the player would experience as theft, with no error anywhere to explain where their morsel went.",
11
+
"type": "string"
12
+
},
9
13
"pet": {
10
14
"format": "at-uri",
11
15
"type": "string"
12
16
},
13
17
"type": {
14
18
"knownValues": [
15
19
"feed",
16
20
"pet"
17
21
],
18
22
"type": "string"
19
23
}
20
24
},
21
25
"required": [
22
26
"type",
23
27
"pet"
24
28
],
25
29
"type": "object"
26
30
}
27
31
},
28
32
"output": {
29
33
"encoding": "application/json",
30
34
"schema": {
31
35
"properties": {
32
36
"createdAt": {
33
37
"format": "datetime",
34
38
"type": "string"
35
39
},
36
40
"error": {
37
-
"description": "Present instead of uri/createdAt when the interaction was refused for an expected reason. A stable machine code the client branches on — add codes, never rename them.",
41
+
"description": "Present instead of uri/createdAt when the interaction was refused for an expected reason. A stable machine code the client branches on — add codes, never rename them. \"asleep\" means the pet's species is inside one of its published sleep windows — see pet.trezy.gameConfig's sleepWindows. It is reported ahead of \"cooldown\" when both apply, because a cooldown countdown during a nap sends the player back to be refused again by a rule nobody mentioned.",
38
42
"knownValues": [
39
43
"invalid-type",
40
44
"not-your-pet",
41
-
"cooldown"
45
+
"cooldown",
46
+
"asleep"
42
47
],
43
48
"type": "string"
44
49
},
45
50
"message": {
46
51
"description": "A sentence to show the player, accompanying `error`. Free to reword; do not branch on it.",
47
52
"type": "string"
48
53
},
49
54
"uri": {
50
55
"format": "at-uri",
51
56
"type": "string"
52
57
}
53
58
},
54
59
"required": [],
55
60
"type": "object"
56
61
}
57
62
},
58
63
"type": "procedure"
59
64
}
60
65
},
61
66
"id": "pet.trezy.createInteraction",
62
67
"lexicon": 1
63
68
}