com.gamethesky.skyvortex.run
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"face": {
"description": "One of the player's own faces, as the enemies wore it in a run: its place among the run's faces, the part it was cast in (if any), the name under it, and the picture.",
"properties": {
"image": {
"accept": [
"image/jpeg"
],
"description": "The face: a 256×256 JPEG, 64 KB at most, cropped to the middle of the photo. Readers refuse a bigger one.",
"maxSize": 65536,
"type": "blob"
},
"name": {
"description": "The face's name, 40 characters at most.",
"maxGraphemes": 40,
"maxLength": 160,
"type": "string"
},
"role": {
"description": "Cast in the Foe Booth as one part: every enemy of that kind wears this face (flipper, tanker, spiker), or, for the boss, every enemy on the last web of each world. Absent, the face is on the ladder, one web at a time. One face a part.",
"knownValues": [
"flipper",
"tanker",
"spiker",
"boss"
],
"type": "string"
},
"slot": {
"description": "The face's place among the run's faces, 0 first. The faces without a `role` are the ladder, in slot order: web n wears the ladder's slot (n - 1) mod its length, and the last web of each world wears them all. A ladder slot with no face in the record is worn as the plain enemy.",
"maximum": 5,
"minimum": 0,
"type": "integer"
}
},
"required": [
"slot",
"name",
"image"
],
"type": "object"
},
"main": {
"description": "One Sky Vortex run, published by the player into their own repo. The record stores every input rather than trusting a score: the sim is deterministic, so replaying the log on the same seed reproduces the run exactly. Owning the record is the identity proof, and replaying it is the score proof; score, ticks, level and the rest are advisory and never trusted by a board.",
"key": "tid",
"record": {
"properties": {
"cleared": {
"description": "Advisory: webs cleared.",
"maximum": 16,
"minimum": 0,
"type": "integer"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"difficulty": {
"description": "The difficulty the run was played at; absent means normal. A verifier must replay at it, and each has its own board.",
"knownValues": [
"easy",
"normal",
"hard"
],
"type": "string"
},
"faces": {
"description": "The player's own photo faces the enemies wore, included on purpose (the game asks, off by default) so a replay anywhere shows them; each photo is a public blob in the player's repo. Looks only: the enemies' play is the sim's, and a verifier ignores this field entirely. Faces with a `role` were cast in the Foe Booth as a kind of enemy or the boss; the rest are the ladder. Six at most.",
"items": {
"ref": "#face",
"type": "ref"
},
"maxLength": 6,
"type": "array"
},
"kills": {
"description": "Advisory: enemies shot down.",
"minimum": 0,
"type": "integer"
},
"level": {
"description": "Advisory: the web the run ended on, 1 to 16, four a world.",
"maximum": 16,
"minimum": 1,
"type": "integer"
},
"log": {
"description": "The whole run as the only input the game takes. Comma-separated `<dtick>.<k>.<a>` entries: dtick is 60 Hz ticks since the previous entry; k 1 holds (a 1) or lets go (a 0) of the trigger; k 2 fires the superzapper (a 0); k 4 gives up; k 5 spins the claw (a -1, 0 or 1, held); k 6 sends the claw to lane a (or -1 for none). Only inputs the sim accepted are logged. Example: `100.6.3,2.1.1,40.5.-1`.",
"maxLength": 400000,
"type": "string"
},
"score": {
"description": "Advisory: points. Higher ranks higher.",
"minimum": 0,
"type": "integer"
},
"seed": {
"description": "The vortex: `arcade` (the same for everyone), or a UTC date `YYYY-MM-DD` for that day's waves. Each has its own board.",
"maxLength": 16,
"type": "string"
},
"simVersion": {
"description": "Which rules produced this log. A verifier must replay under the matching version or refuse the run.",
"minimum": 1,
"type": "integer"
},
"ticks": {
"description": "Advisory: 60 Hz ticks from the first count to the end of the run.",
"minimum": 1,
"type": "integer"
},
"won": {
"description": "Advisory: all sixteen webs cleared.",
"type": "boolean"
}
},
"required": [
"simVersion",
"seed",
"log",
"ticks",
"score",
"level",
"createdAt"
],
"type": "object"
},
"type": "record"
}
},
"id": "com.gamethesky.skyvortex.run",
"lexicon": 1
}
Metadata
- DID
-
did:plc:fpi7mvknwqh264gz6kug7pmk - CID
-
bafyreidjfrhjog2pmmlrby5tq2lmdju27ru6j6o3pwalnnyeaneefnc5ne - Indexed At
- 2026-10-21 19:57 UTC
- AT-URI
-
at://did:plc:fpi7mvknwqh264gz6kug7pmk/com.atproto.lexicon.schema/com.gamethesky.skyvortex.run
Version History (2 versions)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
com.gamethesky.skytanks.run record
One Sky Tanks run, published by the player into their own repo. The record stores every input rather than trusting a score: the sim is deterministic, so replaying the log on the same seed reproduces the run exactly. Own…
-
One night of Haunt the Sky, published by the player into their own repo. The record stores every input rather than trusting a score: the sim is deterministic, so replaying the log on the same seed reproduces the run exa…
-
One run of Fight the Sky, published by the player into their own repo: a climb up the ladder, or a single ghost fight (see `ghost`). The record stores the fighter's build and every input rather than a score: the sim is …
-
com.gamethesky.make.run record
One play of a Make the Sky game, published by the player into their own repo. It stores every input rather than trusting a score: each chapter's engine is deterministic, so replaying its log on the same game reproduces …
-
One run of The Epstein Files, published by the player into their own repo. The record stores every input rather than a score: the sim is deterministic, so re-running the input log against the same seed reproduces the ru…