com.gamethesky.make.game
Schema Diff
+152 -7
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
}