$id: https://hyperboria.babyl.ca/character.json title: Hyperboria character sheet type: object additionalProperties: false required: - name - player - statistics - class - level - health properties: name: &string type: string player: *string class: { $ref: "/classes.json" } statistics: type: object allRequired: true properties: strength: &stat $ref: "#/$defs/statistic" dexterity: *stat constitution: *stat intelligence: *stat wisdom: *stat charisma: *stat level: { type: number, minimum: 1 } health: { $ref: "#/$defs/health" } $defs: statistic: type: number minimum: 1 maximum: 20 health: type: object required: [max] properties: max: type: number sumOf: { list: { $data: 1/log } } current: { type: number } log: type: array description: history of health rolls items: { type: number } minItems: { $data: /level } maxItems: { $data: /level }