com.gamethesky.make.game

gamethesky.com

Schema Diff

+4 -0

From

CID
bafyreibx57vapg6...
Indexed At
2026-10-22 00:27 UTC
View this version

To

CID
bafyreih67jpxhiv...
Indexed At
2026-10-22 00:33 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 2 non-breaking changes.

Non-Breaking Changes (2)
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game:body.carryLives" }
  • AddedEdge AddedEdge { src: "com.gamethesky.make.game:body", tgt: "com.gamethesky.make.game:body.carryLives", kind: "prop", name: Some("carryLives") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.gamethesky.make.game:body.carryLives" }

Additional Notes

  • Non-breaking: AddedEdge { src: "com.gamethesky.make.game:body", tgt: "com.gamethesky.make.game:body.carryLives", kind: "prop", name: Some("carryLives") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "chapter": {
5 5
      "properties": {
6 6
        "level": {
7 7
          "description": "A level the builder drew in the maker, in place of the preset's own map, for modules whose levels can be drawn (platformer, house, tank maze, vortex). A reader runs the module's own checker on it and refuses the game if it fails.",
8 8
          "ref": "#level",
9 9
          "type": "ref"
10 10
        },
11 11
        "module": {
12 12
          "description": "The engine, one of Game the Sky's games made a chapter: platformer, house (a haunted floor), tanks (a tank maze), vortex (a tube of lanes), roll (a tilting course), fight (a bout), golf (a hole), cycles, discs, uplink and canyon (the grid), belts (the counter), race (a sling race), gunner (the door gunner), and the arcade classics. The list grows as games are added; a reader refuses a module it doesn't have.",
13 13
          "knownValues": [
14 14
            "platformer",
15 15
            "house",
16 16
            "tanks",
17 17
            "vortex",
18 18
            "roll",
19 19
            "fight",
20 20
            "golf",
21 21
            "cycles",
22 22
            "discs",
23 23
            "uplink",
24 24
            "canyon",
25 25
            "belts",
26 26
            "race",
27 27
            "gunner",
28 28
            "drones",
29 29
            "landing",
30 30
            "deckgun",
31 31
            "minefield",
32 32
            "pipes",
33 33
            "catch",
34 34
            "fence",
35 35
            "airdrop",
36 36
            "invaders",
37 37
            "crossing"
38 38
          ],
39 39
          "maxLength": 32,
40 40
          "type": "string"
41 41
        },
42 42
        "preset": {
43 43
          "description": "The module's own level to start from (or, with a drawn level, the look it's drawn in).",
44 44
          "maxLength": 32,
45 45
          "type": "string"
46 46
        },
47 47
        "settings": {
48 48
          "description": "The module's knobs as an object of whole numbers by key (for example {\"lives\": 3, \"speed\": 120}). Each module declares its keys and ranges; readers clamp to them, and a missing key takes its default.",
49 49
          "type": "unknown"
50 50
        },
51 51
        "title": {
52 52
          "maxGraphemes": 40,
53 53
          "maxLength": 160,
54 54
          "type": "string"
55 55
        },
56 56
        "version": {
57 57
          "description": "The module's rules this chapter was built on. A reader that doesn't have that version refuses the game rather than playing it differently.",
58 58
          "minimum": 1,
59 59
          "type": "integer"
60 60
        }
61 61
      },
62 62
      "required": [
63 63
        "module",
64 64
        "version",
65 65
        "title",
66 66
        "preset",
67 67
        "settings"
68 68
      ],
69 69
      "type": "object"
70 70
    },
71 71
    "level": {
72 72
      "properties": {
73 73
        "rows": {
74 74
          "description": "The grid, top row first, one character a square, every row the same length. The characters are the module's own. The platformer: . air, # ground, = bricks, - ledge, o coin, ^ spikes, w walker, h hopper, B boss, + extra life, S start, D door. The house: Make a House's tiles. The tank maze: a square, # block, . floor, S you, r a rival. The vortex: o the rim, one square a lane, a loop for a closed tube or a line for an open one.",
75 75
          "items": {
76 76
            "maxLength": 160,
77 77
            "type": "string"
78 78
          },
79 79
          "maxLength": 24,
80 80
          "minLength": 8,
81 81
          "type": "array"
82 82
        }
83 83
      },
84 84
      "required": [
85 85
        "rows"
86 86
      ],
87 87
      "type": "object"
88 88
    },
89 89
    "main": {
90 90
      "description": "A game somebody made in Make the Sky, published into their own repo: a title, a line about it, its look, and one to eight chapters, each one of Game the Sky's engines (a module) on one of its levels (a preset) with its knobs set. Play is decided by the chapters alone. A game is edited in place (the same record, a new version): its board belongs to its way of playing (the chapters' modules, versions, presets and settings), so renaming or restyling it keeps the board, and changing a chapter starts a fresh one. A run pins the version it was played on; a verifier replays it on the game as it stands and takes it only if it replays the same.",
91 91
      "key": "tid",
92 92
      "record": {
93 93
        "properties": {
94 +
          "carryLives": {
95 +
            "description": "Lives carry over: each chapter with lives after the first starts with the lives the player had left (at most 9), not its own lives setting; chapters without lives pass them along. Part of play: a game with it has its own board.",
96 +
            "type": "boolean"
97 +
          },
94 98
          "cast": {
95 99
            "description": "The maker's own Foe Booth cast, included on purpose (off by default): each photo is a public blob in the maker's repo. Looks only: a verifier ignores it. Absent, players see their own cast or the engines' own monsters.",
96 100
            "items": {
97 101
              "ref": "#member",
98 102
              "type": "ref"
99 103
            },
100 104
            "maxLength": 7,
101 105
            "type": "array"
102 106
          },
103 107
          "chapters": {
104 108
            "description": "Played in order. Clearing one goes on to the next; losing one ends the run.",
105 109
            "items": {
106 110
              "ref": "#chapter",
107 111
              "type": "ref"
108 112
            },
109 113
            "maxLength": 8,
110 114
            "minLength": 1,
111 115
            "type": "array"
112 116
          },
113 117
          "createdAt": {
114 118
            "format": "datetime",
115 119
            "type": "string"
116 120
          },
117 121
          "description": {
118 122
            "maxGraphemes": 200,
119 123
            "maxLength": 800,
120 124
            "type": "string"
121 125
          },
122 126
          "remixOf": {
123 127
            "description": "The game this one was remixed from, pinned to the version remixed: credit, shown on the game's page. Absent for an original.",
124 128
            "ref": "com.atproto.repo.strongRef",
125 129
            "type": "ref"
126 130
          },
127 131
          "theme": {
128 132
            "ref": "#theme",
129 133
            "type": "ref"
130 134
          },
131 135
          "title": {
132 136
            "maxGraphemes": 60,
133 137
            "maxLength": 240,
134 138
            "type": "string"
135 139
          }
136 140
        },
137 141
        "required": [
138 142
          "title",
139 143
          "theme",
140 144
          "chapters",
141 145
          "createdAt"
142 146
        ],
143 147
        "type": "object"
144 148
      },
145 149
      "type": "record"
146 150
    },
147 151
    "member": {
148 152
      "description": "One of the cast: the part they play, the name they're billed under, and their photo.",
149 153
      "properties": {
150 154
        "image": {
151 155
          "accept": [
152 156
            "image/png",
153 157
            "image/jpeg"
154 158
          ],
155 159
          "description": "A cutout PNG for a body part, a 256×256 JPEG for a face. 192 KB at most.",
156 160
          "maxSize": 196608,
157 161
          "type": "blob"
158 162
        },
159 163
        "name": {
160 164
          "maxGraphemes": 40,
161 165
          "maxLength": 160,
162 166
          "type": "string"
163 167
        },
164 168
        "role": {
165 169
          "knownValues": [
166 170
            "ghoul",
167 171
            "hound",
168 172
            "thing",
169 173
            "scream",
170 174
            "victim",
171 175
            "portrait",
172 176
            "you"
173 177
          ],
174 178
          "type": "string"
175 179
        }
176 180
      },
177 181
      "required": [
178 182
        "role",
179 183
        "name",
180 184
        "image"
181 185
      ],
182 186
      "type": "object"
183 187
    },
184 188
    "theme": {
185 189
      "properties": {
186 190
        "mood": {
187 191
          "description": "How the chapters light their worlds.",
188 192
          "knownValues": [
189 193
            "bright",
190 194
            "dusk",
191 195
            "cold",
192 196
            "neon",
193 197
            "space",
194 198
            "horror",
195 199
            "retro"
196 200
          ],
197 201
          "type": "string"
198 202
        },
199 203
        "palette": {
200 204
          "description": "Five #rrggbb colors: the page, its panels, the accent, danger, and the words.",
201 205
          "items": {
202 206
            "maxLength": 7,
203 207
            "type": "string"
204 208
          },
205 209
          "maxLength": 5,
206 210
          "minLength": 5,
207 211
          "type": "array"
208 212
        },
209 213
        "pattern": {
210 214
          "knownValues": [
211 215
            "none",
212 216
            "grid",
213 217
            "stripes",
214 218
            "dots",
215 219
            "checks",
216 220
            "waves",
217 221
            "stars"
218 222
          ],
219 223
          "type": "string"
220 224
        },
221 225
        "preset": {
222 226
          "description": "The look it started from (haunted, neon, storybook, space, retro, frozen, sunset), or custom.",
223 227
          "maxLength": 20,
224 228
          "type": "string"
225 229
        },
226 230
        "type": {
227 231
          "description": "The typeface for titles.",
228 232
          "knownValues": [
229 233
            "anton",
230 234
            "creepster",
231 235
            "inter"
232 236
          ],
233 237
          "type": "string"
234 238
        }
235 239
      },
236 240
      "required": [
237 241
        "palette",
238 242
        "pattern",
239 243
        "mood",
240 244
        "type"
241 245
      ],
242 246
      "type": "object"
243 247
    }
244 248
  },
245 249
  "id": "com.gamethesky.make.game",
246 250
  "lexicon": 1
247 251
}

Compare Other Versions

Lexicon Garden

@