com.gamethesky.hauntthesky.run
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "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 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": {
"cast": {
"description": "The player's own cast from the Foe Booth, included on purpose (the game asks, off by default) so a replay and its card anywhere show them; each photo is a public blob in the player's repo. Looks only: whoever plays a part, the sim's monsters are the same, and a verifier ignores this field entirely. One member a part.",
"items": {
"ref": "#member",
"type": "ref"
},
"maxLength": 7,
"type": "array"
},
"cleared": {
"description": "Advisory: floors cleared.",
"maximum": 3,
"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"
},
"kills": {
"description": "Advisory: things put down.",
"minimum": 0,
"type": "integer"
},
"level": {
"description": "Advisory: the floor the run ended on: 1 the front hall, 2 upstairs, 3 the basement.",
"maximum": 3,
"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 4 gives up; k 5 sets the walk to a = (forward + 1) * 3 + (turn + 1), each -1, 0 or 1; k 6 sidesteps (a -1, 0 or 1). Only inputs the sim accepted are logged. Example: `90.5.7,30.1.1,18.1.0`.",
"maxLength": 400000,
"type": "string"
},
"score": {
"description": "Advisory: points. Higher ranks higher.",
"minimum": 0,
"type": "integer"
},
"seed": {
"description": "The night: `arcade` (the same house for everyone), or a UTC date `YYYY-MM-DD` for that night's, with things moved around. 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 floor to the end of the run.",
"minimum": 1,
"type": "integer"
},
"won": {
"description": "Advisory: the Thing put down and the one they came for got out.",
"type": "boolean"
}
},
"required": [
"simVersion",
"seed",
"log",
"ticks",
"score",
"level",
"createdAt"
],
"type": "object"
},
"type": "record"
},
"member": {
"description": "One of the cast: the part they play, the name they're billed under, and their photo.",
"properties": {
"image": {
"accept": [
"image/png",
"image/jpeg"
],
"description": "The photo: for a body part, a cutout PNG with the background clear, about 400 pixels tall; for a face, a 256×256 JPEG. 192 KB at most; readers refuse a bigger one.",
"maxSize": 196608,
"type": "blob"
},
"name": {
"description": "The name on the poster, 40 characters at most.",
"maxGraphemes": 40,
"maxLength": 160,
"type": "string"
},
"role": {
"description": "The part: the ghouls, the hound, the Thing in the basement, its face up close (the scream), the one the player came for, the portrait in the hall, or the player themselves.",
"knownValues": [
"ghoul",
"hound",
"thing",
"scream",
"victim",
"portrait",
"you"
],
"type": "string"
}
},
"required": [
"role",
"name",
"image"
],
"type": "object"
}
},
"id": "com.gamethesky.hauntthesky.run",
"lexicon": 1
}
Metadata
- DID
-
did:plc:fpi7mvknwqh264gz6kug7pmk - CID
-
bafyreibx37zneblgyjcxqts673i45mvvh4jhseucnrxc4bgzvuizedjjim - Indexed At
- 2026-10-21 18:55 UTC
- AT-URI
-
at://did:plc:fpi7mvknwqh264gz6kug7pmk/com.atproto.lexicon.schema/com.gamethesky.hauntthesky.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.skyvortex.run record
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. Ow…
-
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 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…