me.byjp.pesos.sts2.run

byjp.me

Schema Diff

+22 -5

From

CID
bafyreifcwfpciuk...
Indexed At
2026-04-21 18:43 UTC
View this version

To

CID
bafyreifnwpbfs3h...
Indexed At
2026-04-22 07:54 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 6 non-breaking changes.

Breaking Changes (1)
  • KindChanged KindChanged { vertex_id: "me.byjp.pesos.sts2.run:body.allies:items", old_kind: "string", new_kind: "ref" }
Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "me.byjp.pesos.sts2.run#ally" }
  • AddedVertex AddedVertex { vertex_id: "me.byjp.pesos.sts2.run#ally.atproto" }
  • AddedVertex AddedVertex { vertex_id: "me.byjp.pesos.sts2.run#ally.steam" }
  • AddedEdge AddedEdge { src: "me.byjp.pesos.sts2.run#ally", tgt: "me.byjp.pesos.sts2.run#ally.atproto", kind: "prop", name: Some("atproto") }
  • AddedEdge AddedEdge { src: "me.byjp.pesos.sts2.run#ally", tgt: "me.byjp.pesos.sts2.run#ally.steam", kind: "prop", name: Some("steam") }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "me.byjp.pesos.sts2.run:body.allies:items", sort: "minLength" }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "me.byjp.pesos.sts2.run#ally" }
  • AddedVertex { vertex_id: "me.byjp.pesos.sts2.run#ally.atproto" }
  • AddedVertex { vertex_id: "me.byjp.pesos.sts2.run#ally.steam" }

Constraint Changes

  • ConstraintRemoved ConstraintRemoved { vertex_id: "me.byjp.pesos.sts2.run:body.allies:items", sort: "minLength" }

Additional Notes

  • Breaking: KindChanged { vertex_id: "me.byjp.pesos.sts2.run:body.allies:items", old_kind: "string", new_kind: "ref" }
  • Non-breaking: AddedEdge { src: "me.byjp.pesos.sts2.run#ally", tgt: "me.byjp.pesos.sts2.run#ally.atproto", kind: "prop", name: Some("atproto") }
  • Non-breaking: AddedEdge { src: "me.byjp.pesos.sts2.run#ally", tgt: "me.byjp.pesos.sts2.run#ally.steam", kind: "prop", name: Some("steam") }
1 1
{
2 2
  "id": "me.byjp.pesos.sts2.run",
3 3
  "defs": {
4 +
    "ally": {
5 +
      "type": "object",
6 +
      "required": [
7 +
        "steam"
8 +
      ],
9 +
      "properties": {
10 +
        "steam": {
11 +
          "type": "string",
12 +
          "description": "SteamID64 as a decimal string."
13 +
        },
14 +
        "atproto": {
15 +
          "type": "string",
16 +
          "format": "did",
17 +
          "description": "Atproto DID, when known."
18 +
        }
19 +
      },
20 +
      "description": "A co-op peer. Identified by SteamID64 always; an atproto DID is included when we've resolved one for this Steam user."
21 +
    },
4 22
    "main": {
5 23
      "key": "tid",
6 24
      "type": "record",
7 25
      "record": {
8 26
        "type": "object",
9 27
        "required": [
10 28
          "outcome",
11 29
          "character",
12 30
          "ascension",
13 31
          "seed",
14 32
          "startedAt",
15 33
          "updatedAt"
16 34
        ],
17 35
        "properties": {
18 36
          "act": {
19 37
            "type": "integer",
20 38
            "maximum": 4,
21 39
            "minimum": 1
22 40
          },
23 41
          "deck": {
24 42
            "type": "array",
25 43
            "items": {
26 44
              "type": "string"
27 45
            },
28 -
            "description": "Card ids in the final deck."
46 +
            "description": "Card ids in the player's deck."
29 47
          },
30 48
          "game": {
31 49
            "type": "string",
32 50
            "format": "at-uri",
33 51
            "description": "Optional at-uri of the canonical games.gamesgamesgamesgames.actor.game record for StS2."
34 52
          },
35 53
          "seed": {
36 54
            "type": "string",
37 55
            "description": "Run seed as displayed in-game."
38 56
          },
39 57
          "floor": {
40 58
            "type": "integer",
41 59
            "minimum": 0
42 60
          },
43 61
          "score": {
44 62
            "type": "integer",
45 63
            "minimum": 0
46 64
          },
47 65
          "allies": {
48 66
            "type": "array",
49 67
            "items": {
50 -
              "type": "string",
51 -
              "format": "did",
52 -
              "minLength": 1
68 +
              "ref": "#ally",
69 +
              "type": "ref"
53 70
            },
54 -
            "description": "DIDs identifying other players in a multiplayer run."
71 +
            "description": "Other players in a multiplayer run. Each entry always carries the peer's SteamID64; when we've been able to resolve it, the atproto DID is included too."
55 72
          },
56 73
          "relics": {
57 74
            "type": "array",
58 75
            "items": {
59 76
              "type": "string"
60 77
            },
61 78
            "description": "Relic ids held at run end."
62 79
          },
63 80
          "endedAt": {
64 81
            "type": "string",
65 82
            "format": "datetime"
66 83
          },
67 84
          "outcome": {
68 85
            "type": "string",
69 86
            "description": "How the run ended.",
70 87
            "knownValues": [
71 88
              "in_progress",
72 89
              "victory",
73 90
              "death",
74 91
              "abandoned"
75 92
            ]
76 93
          },
77 94
          "potions": {
78 95
            "type": "array",
79 96
            "items": {
80 97
              "type": "string"
81 98
            },
82 99
            "description": "Potion ids currently held."
83 100
          },
84 101
          "killedBy": {
85 102
            "type": "string",
86 103
            "description": "Enemy / event that ended the run, if applicable."
87 104
          },
88 105
          "statsRef": {
89 106
            "type": "string",
90 107
            "format": "at-uri",
91 108
            "description": "at-uri of the user's games.gamesgamesgamesgames.actor.stats record for StS2, updated alongside this run."
92 109
          },
93 110
          "ascension": {
94 111
            "type": "integer",
95 112
            "maximum": 20,
96 113
            "minimum": 0
97 114
          },
98 115
          "character": {
99 116
            "type": "string",
100 117
            "description": "Character class id (e.g. 'ironclad', 'silent')."
101 118
          },
102 119
          "startedAt": {
103 120
            "type": "string",
104 121
            "format": "datetime"
105 122
          },
106 123
          "updatedAt": {
107 124
            "type": "string",
108 125
            "format": "datetime"
109 126
          },
110 127
          "modVersion": {
111 128
            "type": "string"
112 129
          },
113 130
          "gameVersion": {
114 131
            "type": "string"
115 132
          },
116 133
          "durationSeconds": {
117 134
            "type": "integer",
118 135
            "minimum": 0
119 136
          }
120 137
        }
121 138
      },
122 139
      "description": "A single Slay the Spire 2 run."
123 140
    }
124 141
  },
125 142
  "$type": "com.atproto.lexicon.schema",
126 143
  "lexicon": 1
127 144
}

Compare Other Versions

Lexicon Garden

@