com.gamethesky.make.game

gamethesky.com

Schema Diff

+152 -7

From

CID
bafyreifarq5qdor...
Indexed At
2026-10-22 01:24 UTC
View this version

To

CID
bafyreia2lpwazs3...
Indexed At
2026-10-22 05:57 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

5 breaking changes, 27 non-breaking changes.

Breaking Changes (5)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.gamethesky.make.game#scene", src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.at", kind: "prop", name: Some("at") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.gamethesky.make.game#scene", src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.bg", kind: "prop", name: Some("bg") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.gamethesky.make.game#sceneLine", src: "com.gamethesky.make.game#sceneLine", tgt: "com.gamethesky.make.game#sceneLine.text", kind: "prop", name: Some("text") }
  • ConstraintTightened ConstraintTightened { vertex_id: "com.gamethesky.make.game#member.role", sort: "knownValues", old_value: "[\"ghoul\",\"hound\",\"thing\",\"scream\",\"victim\",\"portrait\",\"you\"]", new_value: "[\"ghoul\",\"hound\",\"thing\",\"scream\",\"victim\",\"portrait\",\"you\",\"m1\",\"m2\",\"m3\",\"m4\",\"m5\",\"m6\",\"m7\",\"m8\"]" }
  • ConstraintTightened ConstraintTightened { vertex_id: "com.gamethesky.make.game#chapter.module", sort: "knownValues", old_value: "[\"platformer\",\"house\",\"tanks\",\"vortex\",\"roll\",\"fight\",\"golf\",\"cycles\",\"discs\",\"uplink\",\"canyon\",\"belts\",\"race\",\"gunner\",\"drones\",\"landing\",\"deckgun\",\"minefield\",\"pipes\",\"catch\",\"fence\",\"airdrop\",\"invaders\",\"crossing\"]", new_value: "[\"platformer\",\"house\",\"tanks\",\"vortex\",\"roll\",\"fight\",\"golf\",\"cycles\",\"discs\",\"uplink\",\"canyon\",\"belts\",\"race\",\"gunner\",\"drones\",\"landing\",\"deckgun\",\"minefield\",\"pipes\",\"catch\",\"fence\",\"airdrop\",\"invaders\",\"crossing\",\"walk\",\"fps\"]" }
Non-Breaking Changes (27)
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game#scene" }
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game#scene.at" }
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game#scene.bg" }
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game#scene.chapter" }
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game#scene.lines" }
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game#scene.lines:items" }
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game#scene.music" }
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game#scene.picture" }
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game#scene.sting" }
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game#scene.title" }
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game#sceneLine" }
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game#sceneLine.text" }
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game#sceneLine.who" }
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game:body.scenes" }
  • AddedVertex AddedVertex { vertex_id: "com.gamethesky.make.game:body.scenes:items" }
  • AddedEdge AddedEdge { src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.chapter", kind: "prop", name: Some("chapter") }
  • AddedEdge AddedEdge { src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.lines", kind: "prop", name: Some("lines") }
  • AddedEdge AddedEdge { src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.music", kind: "prop", name: Some("music") }
  • AddedEdge AddedEdge { src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.picture", kind: "prop", name: Some("picture") }
  • AddedEdge AddedEdge { src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.sting", kind: "prop", name: Some("sting") }
  • AddedEdge AddedEdge { src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.title", kind: "prop", name: Some("title") }
  • AddedEdge AddedEdge { src: "com.gamethesky.make.game#scene.lines", tgt: "com.gamethesky.make.game#scene.lines:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "com.gamethesky.make.game#scene.lines:items", tgt: "com.gamethesky.make.game#sceneLine", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "com.gamethesky.make.game#sceneLine", tgt: "com.gamethesky.make.game#sceneLine.who", kind: "prop", name: Some("who") }
  • AddedEdge AddedEdge { src: "com.gamethesky.make.game:body", tgt: "com.gamethesky.make.game:body.scenes", kind: "prop", name: Some("scenes") }
  • AddedEdge AddedEdge { src: "com.gamethesky.make.game:body.scenes", tgt: "com.gamethesky.make.game:body.scenes:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "com.gamethesky.make.game:body.scenes:items", tgt: "com.gamethesky.make.game#scene", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.gamethesky.make.game#scene" }
  • AddedVertex { vertex_id: "com.gamethesky.make.game#scene.at" }
  • AddedVertex { vertex_id: "com.gamethesky.make.game#scene.bg" }
  • AddedVertex { vertex_id: "com.gamethesky.make.game#scene.chapter" }
  • AddedVertex { vertex_id: "com.gamethesky.make.game#scene.lines" }
  • AddedVertex { vertex_id: "com.gamethesky.make.game#scene.lines:items" }
  • AddedVertex { vertex_id: "com.gamethesky.make.game#scene.music" }
  • AddedVertex { vertex_id: "com.gamethesky.make.game#scene.picture" }
  • AddedVertex { vertex_id: "com.gamethesky.make.game#scene.sting" }
  • AddedVertex { vertex_id: "com.gamethesky.make.game#scene.title" }
  • AddedVertex { vertex_id: "com.gamethesky.make.game#sceneLine" }
  • AddedVertex { vertex_id: "com.gamethesky.make.game#sceneLine.text" }
  • AddedVertex { vertex_id: "com.gamethesky.make.game#sceneLine.who" }
  • AddedVertex { vertex_id: "com.gamethesky.make.game:body.scenes" }
  • AddedVertex { vertex_id: "com.gamethesky.make.game:body.scenes:items" }

Constraint Changes

  • ConstraintTightened ConstraintTightened { vertex_id: "com.gamethesky.make.game#member.role", sort: "knownValues", old_value: "[\"ghoul\",\"hound\",\"thing\",\"scream\",\"victim\",\"portrait\",\"you\"]", new_value: "[\"ghoul\",\"hound\",\"thing\",\"scream\",\"victim\",\"portrait\",\"you\",\"m1\",\"m2\",\"m3\",\"m4\",\"m5\",\"m6\",\"m7\",\"m8\"]" }
  • ConstraintTightened ConstraintTightened { vertex_id: "com.gamethesky.make.game#chapter.module", sort: "knownValues", old_value: "[\"platformer\",\"house\",\"tanks\",\"vortex\",\"roll\",\"fight\",\"golf\",\"cycles\",\"discs\",\"uplink\",\"canyon\",\"belts\",\"race\",\"gunner\",\"drones\",\"landing\",\"deckgun\",\"minefield\",\"pipes\",\"catch\",\"fence\",\"airdrop\",\"invaders\",\"crossing\"]", new_value: "[\"platformer\",\"house\",\"tanks\",\"vortex\",\"roll\",\"fight\",\"golf\",\"cycles\",\"discs\",\"uplink\",\"canyon\",\"belts\",\"race\",\"gunner\",\"drones\",\"landing\",\"deckgun\",\"minefield\",\"pipes\",\"catch\",\"fence\",\"airdrop\",\"invaders\",\"crossing\",\"walk\",\"fps\"]" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "com.gamethesky.make.game#scene", src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.at", kind: "prop", name: Some("at") }
  • Breaking: RequiredEdgeAdded { vertex_id: "com.gamethesky.make.game#scene", src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.bg", kind: "prop", name: Some("bg") }
  • Breaking: RequiredEdgeAdded { vertex_id: "com.gamethesky.make.game#sceneLine", src: "com.gamethesky.make.game#sceneLine", tgt: "com.gamethesky.make.game#sceneLine.text", kind: "prop", name: Some("text") }
  • Non-breaking: AddedEdge { src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.chapter", kind: "prop", name: Some("chapter") }
  • Non-breaking: AddedEdge { src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.lines", kind: "prop", name: Some("lines") }
  • Non-breaking: AddedEdge { src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.music", kind: "prop", name: Some("music") }
  • Non-breaking: AddedEdge { src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.picture", kind: "prop", name: Some("picture") }
  • Non-breaking: AddedEdge { src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.sting", kind: "prop", name: Some("sting") }
  • Non-breaking: AddedEdge { src: "com.gamethesky.make.game#scene", tgt: "com.gamethesky.make.game#scene.title", kind: "prop", name: Some("title") }
  • Non-breaking: AddedEdge { src: "com.gamethesky.make.game#scene.lines", tgt: "com.gamethesky.make.game#scene.lines:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "com.gamethesky.make.game#scene.lines:items", tgt: "com.gamethesky.make.game#sceneLine", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "com.gamethesky.make.game#sceneLine", tgt: "com.gamethesky.make.game#sceneLine.who", kind: "prop", name: Some("who") }
  • Non-breaking: AddedEdge { src: "com.gamethesky.make.game:body", tgt: "com.gamethesky.make.game:body.scenes", kind: "prop", name: Some("scenes") }
  • Non-breaking: AddedEdge { src: "com.gamethesky.make.game:body.scenes", tgt: "com.gamethesky.make.game:body.scenes:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "com.gamethesky.make.game:body.scenes:items", tgt: "com.gamethesky.make.game#scene", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "chapter": {
5 5
      "properties": {
6 6
        "backdrop": {
7 7
          "accept": [
8 8
            "image/jpeg",
9 9
            "image/png"
10 10
          ],
11 11
          "description": "A picture for this chapter's sky or backdrop, drawn behind the play where the chapter type can (at most 1600×900). Public once published. Looks only: play, boards and the verifier never read it.",
12 12
          "maxSize": 716800,
13 13
          "type": "blob"
14 14
        },
15 15
        "level": {
16 -
          "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.",
16 +
          "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, walk-through). A reader runs the module's own checker on it and refuses the game if it fails.",
17 17
          "ref": "#level",
18 18
          "type": "ref"
19 19
        },
20 20
        "module": {
21 -
          "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.",
21 +
          "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), the arcade classics, walk (a haunted walk-through: no gun, a nerve meter), and fps (first person, armed, in a place such as a military facility: guards, keycards, intel, extraction). The list grows as games are added; a reader refuses a module it doesn't have.",
22 22
          "knownValues": [
23 23
            "platformer",
24 24
            "house",
25 25
            "tanks",
26 26
            "vortex",
27 27
            "roll",
28 28
            "fight",
29 29
            "golf",
30 30
            "cycles",
31 31
            "discs",
32 32
            "uplink",
33 33
            "canyon",
34 34
            "belts",
35 35
            "race",
36 36
            "gunner",
37 37
            "drones",
38 38
            "landing",
39 39
            "deckgun",
40 40
            "minefield",
41 41
            "pipes",
42 42
            "catch",
43 43
            "fence",
44 44
            "airdrop",
45 45
            "invaders",
46 -
            "crossing"
46 +
            "crossing",
47 +
            "walk",
48 +
            "fps"
47 49
          ],
48 50
          "maxLength": 32,
49 51
          "type": "string"
50 52
        },
51 53
        "preset": {
52 54
          "description": "The module's own level to start from (or, with a drawn level, the look it's drawn in).",
53 55
          "maxLength": 32,
54 56
          "type": "string"
55 57
        },
56 58
        "settings": {
57 59
          "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.",
58 60
          "type": "unknown"
59 61
        },
60 62
        "textures": {
61 -
          "description": "The builder's own art for the pieces of the chapter's level, by piece (the module's own names: the platformer's ground, bricks and ledge; the house's and the tank maze's wall and floor), each a blob: a square JPEG (256×256, at most 120 KB) drawn tiled, one a square of the level. Public once published. Looks only.",
63 +
          "description": "The builder's own art for the pieces of the chapter's level, by piece (the module's own names: the platformer's ground, bricks and ledge; the house's and the tank maze's wall and floor; the walk-through's wall, floor, ceiling and portrait), each a blob: a square JPEG (256×256, at most 120 KB) drawn tiled, one a square of the level. Public once published. Looks only.",
62 64
          "type": "unknown"
63 65
        },
64 66
        "title": {
65 67
          "maxGraphemes": 40,
66 68
          "maxLength": 160,
67 69
          "type": "string"
68 70
        },
69 71
        "version": {
70 72
          "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.",
71 73
          "minimum": 1,
72 74
          "type": "integer"
73 75
        }
74 76
      },
75 77
      "required": [
76 78
        "module",
77 79
        "version",
78 80
        "title",
79 81
        "preset",
80 82
        "settings"
81 83
      ],
82 84
      "type": "object"
83 85
    },
84 86
    "level": {
85 87
      "properties": {
86 88
        "rows": {
87 -
          "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.",
89 +
          "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 walk-through: the house's walls, portraits, windows, start, key and doors, E the way out, jump-outs (g h f x V T, 1 to 8 the maker's members), sounds (A L R I J N Y), F a fog machine, props (s Z C t H c j w b). 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.",
88 90
          "items": {
89 91
            "maxLength": 160,
90 92
            "type": "string"
91 93
          },
92 94
          "maxLength": 24,
93 95
          "minLength": 8,
94 96
          "type": "array"
95 97
        }
96 98
      },
97 99
      "required": [
98 100
        "rows"
99 101
      ],
100 102
      "type": "object"
101 103
    },
102 104
    "main": {
103 105
      "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.",
104 106
      "key": "tid",
105 107
      "record": {
106 108
        "properties": {
107 109
          "carryLives": {
108 110
            "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.",
109 111
            "type": "boolean"
110 112
          },
111 113
          "cast": {
112 114
            "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.",
113 115
            "items": {
114 116
              "ref": "#member",
115 117
              "type": "ref"
116 118
            },
117 -
            "maxLength": 7,
119 +
            "maxLength": 15,
118 120
            "type": "array"
119 121
          },
120 122
          "chapters": {
121 123
            "description": "Played in order. Clearing one goes on to the next; losing one ends the run.",
122 124
            "items": {
123 125
              "ref": "#chapter",
124 126
              "type": "ref"
125 127
            },
126 128
            "maxLength": 8,
127 129
            "minLength": 1,
128 130
            "type": "array"
129 131
          },
130 132
          "cover": {
131 133
            "accept": [
132 134
              "image/jpeg",
133 135
              "image/png"
134 136
            ],
135 137
            "description": "The game's picture: its page, its share card, its tile in the gallery. 1200×630, cropped by the maker. Public once published. Looks only: play, boards and the verifier never read it.",
136 138
            "maxSize": 614400,
137 139
            "type": "blob"
138 140
          },
139 141
          "createdAt": {
140 142
            "format": "datetime",
141 143
            "type": "string"
142 144
          },
143 145
          "description": {
144 146
            "maxGraphemes": 200,
145 147
            "maxLength": 800,
146 148
            "type": "string"
147 149
          },
148 150
          "logo": {
149 151
            "accept": [
150 152
              "image/png",
151 153
              "image/jpeg"
152 154
            ],
153 155
            "description": "The game's title as a picture (a PNG with a clear background, at most 1200×400), shown in place of the typed title on its page, its chapter cards and its share card; the typed title stays for readers. Public once published. Looks only.",
154 156
            "maxSize": 409600,
155 157
            "type": "blob"
156 158
          },
157 159
          "remixOf": {
158 160
            "description": "The game this one was remixed from, pinned to the version remixed: credit, shown on the game's page. Absent for an original.",
159 161
            "ref": "com.atproto.repo.strongRef",
160 162
            "type": "ref"
161 163
          },
164 +
          "scenes": {
165 +
            "description": "The story told between chapters: cut-scenes, one at most before each chapter (the first is the opening) and one each for winning and losing at the end. A scene a reader can't use is skipped, never the game. Words and looks only: not part of play, so adding or editing scenes keeps the game's board, and a verifier never reads them.",
166 +
            "items": {
167 +
              "ref": "#scene",
168 +
              "type": "ref"
169 +
            },
170 +
            "maxLength": 10,
171 +
            "type": "array"
172 +
          },
162 173
          "theme": {
163 174
            "ref": "#theme",
164 175
            "type": "ref"
165 176
          },
166 177
          "title": {
167 178
            "maxGraphemes": 60,
168 179
            "maxLength": 240,
169 180
            "type": "string"
170 181
          }
171 182
        },
172 183
        "required": [
173 184
          "title",
174 185
          "theme",
175 186
          "chapters",
176 187
          "createdAt"
177 188
        ],
178 189
        "type": "object"
179 190
      },
180 191
      "type": "record"
181 192
    },
182 193
    "member": {
183 194
      "description": "One of the cast: the part they play, the name they're billed under, and their photo.",
184 195
      "properties": {
185 196
        "image": {
186 197
          "accept": [
187 198
            "image/png",
188 199
            "image/jpeg"
189 200
          ],
190 201
          "description": "A cutout PNG for a body part, a 256×256 JPEG for a face. 192 KB at most.",
191 202
          "maxSize": 196608,
192 203
          "type": "blob"
193 204
        },
194 205
        "name": {
195 206
          "maxGraphemes": 40,
196 207
          "maxLength": 160,
197 208
          "type": "string"
198 209
        },
199 210
        "role": {
211 +
          "description": "One of the fixed parts, or m1 to m8: one of the maker's own cast members, placed by hand in levels that take them (the walk-through's 1 to 8). A member's photo says what they are: a cutout PNG is a figure, a JPEG a face.",
200 212
          "knownValues": [
201 213
            "ghoul",
202 214
            "hound",
203 215
            "thing",
204 216
            "scream",
205 217
            "victim",
206 218
            "portrait",
207 -
            "you"
219 +
            "you",
220 +
            "m1",
221 +
            "m2",
222 +
            "m3",
223 +
            "m4",
224 +
            "m5",
225 +
            "m6",
226 +
            "m7",
227 +
            "m8"
208 228
          ],
209 229
          "type": "string"
210 230
        }
211 231
      },
212 232
      "required": [
213 233
        "role",
214 234
        "name",
215 235
        "image"
216 236
      ],
217 237
      "type": "object"
218 238
    },
239 +
    "scene": {
240 +
      "description": "A cut-scene: a title and a few lines typed out over a letterboxed screen, each said by one of the cast or by nobody (narration), over a background of the builder's choosing.",
241 +
      "properties": {
242 +
        "at": {
243 +
          "description": "Where it plays: before a chapter (see chapter), or at the end, after the last chapter is cleared (win) or after a chapter is lost (lose), before the results.",
244 +
          "knownValues": [
245 +
            "before",
246 +
            "win",
247 +
            "lose"
248 +
          ],
249 +
          "maxLength": 16,
250 +
          "type": "string"
251 +
        },
252 +
        "bg": {
253 +
          "description": "What plays behind the words: replay, the last moments of the chapter just played, slowed down, dimmed and silent (a flyby before the first chapter, where nothing's been played yet); flyby, a slow look round the next chapter's level; picture, the builder's own (see picture); plain, the game's theme.",
254 +
          "knownValues": [
255 +
            "replay",
256 +
            "flyby",
257 +
            "picture",
258 +
            "plain"
259 +
          ],
260 +
          "maxLength": 16,
261 +
          "type": "string"
262 +
        },
263 +
        "chapter": {
264 +
          "description": "For a scene before a chapter: which one, counting from 0 (0 is the opening, before the first chapter's card).",
265 +
          "maximum": 7,
266 +
          "minimum": 0,
267 +
          "type": "integer"
268 +
        },
269 +
        "lines": {
270 +
          "description": "Typed out one at a time; the player moves on line by line.",
271 +
          "items": {
272 +
            "ref": "#sceneLine",
273 +
            "type": "ref"
274 +
          },
275 +
          "maxLength": 6,
276 +
          "type": "array"
277 +
        },
278 +
        "music": {
279 +
          "description": "A mood of music under the scene. Absent: none.",
280 +
          "knownValues": [
281 +
            "musicbox",
282 +
            "heartbeat",
283 +
            "unease",
284 +
            "dread",
285 +
            "tension",
286 +
            "groove",
287 +
            "pulse",
288 +
            "drift",
289 +
            "alarm"
290 +
          ],
291 +
          "maxLength": 32,
292 +
          "type": "string"
293 +
        },
294 +
        "picture": {
295 +
          "accept": [
296 +
            "image/jpeg",
297 +
            "image/png"
298 +
          ],
299 +
          "description": "The builder's own picture for a picture background (at most 1600×900). Public once published. Looks only.",
300 +
          "maxSize": 716800,
301 +
          "type": "blob"
302 +
        },
303 +
        "sting": {
304 +
          "description": "A recorded sound as the scene opens, from the horror pack. Absent: none.",
305 +
          "knownValues": [
306 +
            "creepy_hello",
307 +
            "creepy_laugh",
308 +
            "female_scream",
309 +
            "intrigue_event",
310 +
            "jump_scare",
311 +
            "jump_scare_horn",
312 +
            "lets_play"
313 +
          ],
314 +
          "maxLength": 32,
315 +
          "type": "string"
316 +
        },
317 +
        "title": {
318 +
          "maxGraphemes": 60,
319 +
          "maxLength": 240,
320 +
          "type": "string"
321 +
        }
322 +
      },
323 +
      "required": [
324 +
        "at",
325 +
        "bg"
326 +
      ],
327 +
      "type": "object"
328 +
    },
329 +
    "sceneLine": {
330 +
      "properties": {
331 +
        "text": {
332 +
          "maxGraphemes": 160,
333 +
          "maxLength": 640,
334 +
          "type": "string"
335 +
        },
336 +
        "who": {
337 +
          "description": "Who says it: one of the cast's parts or the maker's own members (their photo and name show beside the line). Absent: narration.",
338 +
          "knownValues": [
339 +
            "ghoul",
340 +
            "hound",
341 +
            "thing",
342 +
            "scream",
343 +
            "victim",
344 +
            "portrait",
345 +
            "you",
346 +
            "m1",
347 +
            "m2",
348 +
            "m3",
349 +
            "m4",
350 +
            "m5",
351 +
            "m6",
352 +
            "m7",
353 +
            "m8"
354 +
          ],
355 +
          "maxLength": 16,
356 +
          "type": "string"
357 +
        }
358 +
      },
359 +
      "required": [
360 +
        "text"
361 +
      ],
362 +
      "type": "object"
363 +
    },
219 364
    "theme": {
220 365
      "properties": {
221 366
        "mood": {
222 367
          "description": "How the chapters light their worlds.",
223 368
          "knownValues": [
224 369
            "bright",
225 370
            "dusk",
226 371
            "cold",
227 372
            "neon",
228 373
            "space",
229 374
            "horror",
230 375
            "retro"
231 376
          ],
232 377
          "type": "string"
233 378
        },
234 379
        "palette": {
235 380
          "description": "Five #rrggbb colors: the page, its panels, the accent, danger, and the words.",
236 381
          "items": {
237 382
            "maxLength": 7,
238 383
            "type": "string"
239 384
          },
240 385
          "maxLength": 5,
241 386
          "minLength": 5,
242 387
          "type": "array"
243 388
        },
244 389
        "pattern": {
245 390
          "knownValues": [
246 391
            "none",
247 392
            "grid",
248 393
            "stripes",
249 394
            "dots",
250 395
            "checks",
251 396
            "waves",
252 397
            "stars"
253 398
          ],
254 399
          "type": "string"
255 400
        },
256 401
        "preset": {
257 402
          "description": "The look it started from (haunted, neon, storybook, space, retro, frozen, sunset), or custom.",
258 403
          "maxLength": 20,
259 404
          "type": "string"
260 405
        },
261 406
        "type": {
262 407
          "description": "The typeface for titles.",
263 408
          "knownValues": [
264 409
            "anton",
265 410
            "creepster",
266 411
            "inter"
267 412
          ],
268 413
          "type": "string"
269 414
        }
270 415
      },
271 416
      "required": [
272 417
        "palette",
273 418
        "pattern",
274 419
        "mood",
275 420
        "type"
276 421
      ],
277 422
      "type": "object"
278 423
    }
279 424
  },
280 425
  "id": "com.gamethesky.make.game",
281 426
  "lexicon": 1
282 427
}

Compare Other Versions

Lexicon Garden

@