A player's fighter, published into their own repo so anyone can fight its ghost: the build the sim uses, the style the CPU plays it in, and the paint it wears. One per account, at rkey `self`; saving again overwrites it. A ghost run pins the version it fought by CID, so overwriting changes no old result.
literal:self
Fixed literal value
Properties
build
ref
com.gamethesky.fightthesky.run#build
Required
The fighter's build: twelve points at most over four stats of 1–5, and a special. It changes the sim, so a verifier replaying a ghost fight uses exactly this.
createdAt
string
datetime
Required
An RFC 3339 formatted timestamp.
look
string
Optional
Cosmetic: the fighter's three paint colors, as `rrggbb.rrggbb.rrggbb` (body, trim, gloves). The sim never sees it.
maxLength: 32 bytesstyle
string
Required
How the CPU plays this fighter when it's a ghost: a rusher closes in and swings, a turtle blocks and punishes, a zoner keeps range and throws, a tricky one jumps, sweeps and dashes.
maxLength: 16 bytesrusher, turtle, zoner, trickyView raw schema
{
"description": "A player's fighter, published into their own repo so anyone can fight its ghost: the build the sim uses, the style the CPU plays it in, and the paint it wears. One per account, at rkey `self`; saving again overwrites it. A ghost run pins the version it fought by CID, so overwriting changes no old result.",
"key": "literal:self",
"record": {
"properties": {
"build": {
"description": "The fighter's build: twelve points at most over four stats of 1–5, and a special. It changes the sim, so a verifier replaying a ghost fight uses exactly this.",
"ref": "com.gamethesky.fightthesky.run#build",
"type": "ref"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"look": {
"description": "Cosmetic: the fighter's three paint colors, as `rrggbb.rrggbb.rrggbb` (body, trim, gloves). The sim never sees it.",
"maxLength": 32,
"type": "string"
},
"style": {
"description": "How the CPU plays this fighter when it's a ghost: a rusher closes in and swings, a turtle blocks and punishes, a zoner keeps range and throws, a tricky one jumps, sweeps and dashes.",
"knownValues": [
"rusher",
"turtle",
"zoner",
"tricky"
],
"maxLength": 16,
"type": "string"
}
},
"required": [
"build",
"style",
"createdAt"
],
"type": "object"
},
"type": "record"
}