174 lines
3.9 KiB
JSON
174 lines
3.9 KiB
JSON
{
|
|
"$defs" : {
|
|
"experience" : {
|
|
"properties" : {
|
|
"items" : {
|
|
"properties" : {
|
|
"amount" : {
|
|
"type" : "number"
|
|
},
|
|
"date" : {
|
|
"type" : "string"
|
|
},
|
|
"notes" : {
|
|
"type" : "string"
|
|
}
|
|
},
|
|
"type" : "object"
|
|
},
|
|
"log" : {
|
|
"type" : "array"
|
|
},
|
|
"total" : {
|
|
"sumOf" : {
|
|
"list" : {
|
|
"$data" : "1/log"
|
|
},
|
|
"map" : "amount"
|
|
},
|
|
"type" : "number"
|
|
}
|
|
},
|
|
"type" : "object"
|
|
},
|
|
"health" : {
|
|
"properties" : {
|
|
"current" : {
|
|
"type" : "number"
|
|
},
|
|
"log" : {
|
|
"description" : "history of health rolls",
|
|
"items" : {
|
|
"type" : "number"
|
|
},
|
|
"maxItems" : {
|
|
"$data" : "/level"
|
|
},
|
|
"minItems" : {
|
|
"$data" : "/level"
|
|
},
|
|
"type" : "array"
|
|
},
|
|
"max" : {
|
|
"sumOf" : {
|
|
"list" : {
|
|
"$data" : "1/log"
|
|
}
|
|
},
|
|
"type" : "number"
|
|
}
|
|
},
|
|
"required" : [
|
|
"max"
|
|
],
|
|
"type" : "object"
|
|
},
|
|
"statistic" : {
|
|
"maximum" : 20,
|
|
"minimum" : 1,
|
|
"type" : "number"
|
|
}
|
|
},
|
|
"$id" : "https://hyperboria.babyl.ca/character.json",
|
|
"additionalProperties" : false,
|
|
"properties" : {
|
|
"age" : {
|
|
"type" : "number"
|
|
},
|
|
"alignment" : {
|
|
"type" : "string"
|
|
},
|
|
"appearance" : {
|
|
"type" : "string"
|
|
},
|
|
"class" : {
|
|
"$ref" : "/classes.json"
|
|
},
|
|
"experience" : {
|
|
"$ref" : "#/$defs/experience"
|
|
},
|
|
"gender" : {
|
|
"type" : "string"
|
|
},
|
|
"health" : {
|
|
"$ref" : "#/$defs/health"
|
|
},
|
|
"height" : {
|
|
"type" : "string"
|
|
},
|
|
"languages" : {
|
|
"items" : {
|
|
"$ref" : "/languages.json"
|
|
},
|
|
"minItems" : 1,
|
|
"type" : "array"
|
|
},
|
|
"level" : {
|
|
"minimum" : 1,
|
|
"type" : "number"
|
|
},
|
|
"name" : {
|
|
"type" : "string"
|
|
},
|
|
"player" : {
|
|
"type" : "string"
|
|
},
|
|
"race" : {
|
|
"$ref" : "/races.json"
|
|
},
|
|
"spells" : {
|
|
"items" : {
|
|
"$ref" : "/spells.json"
|
|
},
|
|
"maxSpells" : {
|
|
"class" : {
|
|
"$data" : "/class"
|
|
},
|
|
"level" : {
|
|
"$data" : "/level"
|
|
}
|
|
},
|
|
"type" : "array"
|
|
},
|
|
"statistics" : {
|
|
"allRequired" : true,
|
|
"properties" : {
|
|
"charisma" : {
|
|
"$ref" : "#/$defs/statistic"
|
|
},
|
|
"constitution" : {
|
|
"$ref" : "#/$defs/statistic"
|
|
},
|
|
"dexterity" : {
|
|
"$ref" : "#/$defs/statistic"
|
|
},
|
|
"intelligence" : {
|
|
"$ref" : "#/$defs/statistic"
|
|
},
|
|
"strength" : {
|
|
"$ref" : "#/$defs/statistic"
|
|
},
|
|
"wisdom" : {
|
|
"$ref" : "#/$defs/statistic"
|
|
}
|
|
},
|
|
"type" : "object"
|
|
}
|
|
},
|
|
"required" : [
|
|
"name",
|
|
"player",
|
|
"statistics",
|
|
"class",
|
|
"level",
|
|
"health",
|
|
"experience",
|
|
"age",
|
|
"height",
|
|
"appearance",
|
|
"alignment"
|
|
],
|
|
"title" : "Hyperboria character sheet",
|
|
"type" : "object"
|
|
}
|