Character
Character Sheet
Section titled “Character Sheet”ID: Character
A character sheet
{  "$schema": "https://json-schema.org/draft/2020-12/schema",  "id": "Character",  "examples": [    {      "_type": "character",      "_meta": {        "campaignUrl": "https://dh-forge.com/schema.json",        "rulesetVersion": "1.0.0",        "dateCreated": "2025-05-30T12:00:00.000Z",        "dateUpdated": "2025-05-30T12:00:00.000Z"      },      "name": "Elara Meadowlight",      "nameAlternate": "Ela",      "pronouns": {        "_type": "pronouns",        "subject": "she",        "object": "her",        "possessive": "hers",        "reflexive": "herself"      },      "heritage": {        "_type": "heritage",        "community": {          "_type": "reference",          "_key": "heritage/community",          "value": "seaborne"        },        "ancestry": {          "_type": "dualAncestry",          "primary": {            "_type": "reference",            "_key": "heritage/ancestry",            "value": "elf"          },          "secondary": {            "_type": "reference",            "_key": "heritage/ancestry",            "value": "faun"          }        }      },      "roles": [        {          "_type": "characterRole",          "class": {            "_type": "reference",            "_key": "role/class",            "value": "bard"          },          "subclass": {            "_type": "reference",            "_key": "role/subclass",            "value": "troubadour"          }        },        {          "_type": "characterRole",          "class": {            "_type": "reference",            "_key": "role/class",            "value": "sorcerer"          },          "subclass": {            "_type": "reference",            "_key": "role/subclass",            "value": "pyromancer"          }        }      ],      "experiences": [        {          "_type": "experience",          "name": "Loremaster of the Ancient Texts",          "description": "Years spent deciphering forgotten scrolls."        },        {          "_type": "experience",          "name": "Survivor of the Whispering Woods",          "description": null        }      ],      "level": 5,      "evasion": 14,      "armorSlots": {        "_type": "dynamicResource",        "max": 5,        "current": 3      },      "hitPoints": {        "_type": "dynamicResource",        "max": 8,        "current": 7      },      "damageThresholds": {        "_type": "damageThresholds",        "major": 10,        "severe": 15      },      "hope": {        "_type": "dynamicResource",        "max": 8,        "current": 4      },      "stress": {        "_type": "dynamicResource",        "max": 5,        "current": 1      },      "traits": {        "Agility": {          "_type": "trait",          "value": 2,          "locked": false        },        "Strength": {          "_type": "trait",          "value": 0,          "locked": false        },        "Finesse": {          "_type": "trait",          "value": 3,          "locked": true        },        "Instinct": {          "_type": "trait",          "value": 1,          "locked": false        },        "Presence": {          "_type": "trait",          "value": 4,          "locked": false        },        "Knowledge": {          "_type": "trait",          "value": 1,          "locked": true        }      },      "gold": {        "_type": "gold",        "handfuls": 15,        "bags": 2,        "chests": 0      },      "equippedArmor": {        "primary": {          "_type": "reference",          "_key": "item/armor",          "value": "enchanted_leather"        },        "notes": "Glows faintly in moonlight"      },      "equippedWeapon": {        "primary": {          "_type": "reference",          "_key": "item/weapon",          "value": "singing_shortbow"        },        "secondary": null,        "notes": null      },      "inventory": [        {          "_type": "reference",          "_key": "item/weapon",          "value": "silvered_dagger"        },        {          "_type": "reference",          "_key": "item/thing",          "value": "healing_potion_greater"        },        {          "_type": "inventoryThing",          "name": "Bundle of Strange Herbs",          "description": "Found near the Shadowfen, smells of sulfur and roses."        },        {          "_type": "inventoryThing",          "name": "Tarnished Silver Locket",          "description": "Opens, but is empty inside."        }      ]    }  ],  "type": "object",  "properties": {    "$schema": {      "type": "string",      "format": "uri"    },    "_type": {      "const": "character"    },    "_meta": {      "type": "object",      "properties": {        "rulesetVersion": {          "$ref": "#/$defs/SchemaVersion"        },        "dateCreated": {          "type": "string",          "format": "date-time",          "pattern": "^((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))T([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(\\.\\d+)?(Z)$"        },        "dateUpdated": {          "type": "string",          "format": "date-time",          "pattern": "^((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))T([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(\\.\\d+)?(Z)$"        },        "campaignUrl": {          "$ref": "#/$defs/CampaignUrl"        }      },      "required": [        "rulesetVersion",        "dateCreated",        "dateUpdated",        "campaignUrl"      ],      "additionalProperties": false    },    "name": {      "type": "string"    },    "nameAlternate": {      "anyOf": [        {          "type": "string"        },        {          "type": "null"        }      ]    },    "pronouns": {      "$ref": "#/$defs/Pronouns"    },    "heritage": {      "$ref": "#/$defs/Heritage"    },    "roles": {      "type": "array",      "items": {        "$ref": "#/$defs/CharacterRole"      }    },    "experiences": {      "type": "array",      "items": {        "$ref": "#/$defs/Experience"      }    },    "level": {      "$ref": "#/$defs/Level"    },    "evasion": {      "type": "integer",      "minimum": 0,      "maximum": 100    },    "armorSlots": {      "$ref": "#/$defs/DynamicResource"    },    "hitPoints": {      "$ref": "#/$defs/DynamicResource"    },    "damageThresholds": {      "$ref": "#/$defs/DamageThresholds"    },    "hope": {      "$ref": "#/$defs/DynamicResource"    },    "stress": {      "$ref": "#/$defs/DynamicResource"    },    "traits": {      "type": "object",      "propertyNames": {        "$ref": "#/$defs/TraitName"      },      "additionalProperties": {        "$ref": "#/$defs/Trait"      }    },    "gold": {      "$ref": "#/$defs/Gold"    },    "equippedArmor": {      "type": "object",      "properties": {        "primary": {          "anyOf": [            {              "$ref": "#/$defs/ReferenceArmor"            },            {              "type": "null"            }          ]        },        "notes": {          "anyOf": [            {              "type": "string"            },            {              "type": "null"            }          ]        }      },      "required": [        "primary",        "notes"      ],      "additionalProperties": false    },    "equippedWeapon": {      "type": "object",      "properties": {        "primary": {          "anyOf": [            {              "$ref": "#/$defs/ReferenceWeapon"            },            {              "type": "null"            }          ]        },        "secondary": {          "anyOf": [            {              "$ref": "#/$defs/ReferenceWeapon"            },            {              "type": "null"            }          ]        },        "notes": {          "anyOf": [            {              "type": "string"            },            {              "type": "null"            }          ]        }      },      "required": [        "primary",        "secondary",        "notes"      ],      "additionalProperties": false    },    "inventory": {      "type": "array",      "items": {        "anyOf": [          {            "$ref": "#/$defs/ReferenceArmor"          },          {            "$ref": "#/$defs/ReferenceWeapon"          },          {            "$ref": "#/$defs/ReferenceThing"          },          {            "$ref": "#/$defs/Thing"          }        ]      }    }  },  "required": [    "_type",    "_meta",    "name",    "nameAlternate",    "pronouns",    "heritage",    "roles",    "experiences",    "level",    "evasion",    "armorSlots",    "hitPoints",    "damageThresholds",    "hope",    "stress",    "traits",    "gold",    "equippedArmor",    "equippedWeapon",    "inventory"  ],  "additionalProperties": false,  "$defs": {    "SchemaVersion": {      "id": "SchemaVersion",      "title": "Schema Version",      "description": "A version number",      "examples": [        "0.0.0"      ],      "type": "string",      "pattern": "^\\d+\\.\\d+\\.\\d+$"    },    "CampaignUrl": {      "id": "CampaignUrl",      "title": "Campaign URL",      "description": "The URL of the campaign",      "examples": [        "https://docs.dh-forge.com/schema/0.0.0/campaign.json",        "https://docs.dh-forge.com/schema/1.0.0/campaign.json"      ],      "type": "string",      "format": "uri"    },    "Pronouns": {      "id": "Pronouns",      "title": "Pronouns",      "description": "The pronouns of a character",      "type": "object",      "properties": {        "_type": {          "const": "pronouns"        },        "subject": {          "$ref": "#/$defs/PronounsSubject"        },        "object": {          "$ref": "#/$defs/PronounsObject"        },        "possessive": {          "$ref": "#/$defs/PronounsPossessive"        },        "reflexive": {          "$ref": "#/$defs/PronounsReflexive"        }      },      "required": [        "_type",        "subject",        "object",        "possessive",        "reflexive"      ],      "additionalProperties": false    },    "PronounsSubject": {      "id": "PronounsSubject",      "title": "Subject Pronoun",      "description": "A pronoun form used when it performs the verb’s action.",      "examples": [        "she",        "he",        "they"      ],      "type": "string"    },    "PronounsObject": {      "id": "PronounsObject",      "title": "Object Pronoun",      "description": "A pronoun form used when it receives the action or follows a preposition.",      "examples": [        "her",        "him",        "them"      ],      "type": "string"    },    "PronounsPossessive": {      "id": "PronounsPossessive",      "title": "Possessive Pronoun",      "description": "A pronoun form that replaces a noun to show ownership or relationship.",      "examples": [        "hers",        "his",        "theirs"      ],      "type": "string"    },    "PronounsReflexive": {      "id": "PronounsReflexive",      "title": "Reflexive Pronoun",      "description": "A pronoun form ending in “-self” or “-selves” that refers back to the clause’s subject.",      "examples": [        "herself",        "himself",        "themselves"      ],      "type": "string"    },    "Heritage": {      "id": "Heritage",      "title": "Character Heritage",      "description": "A character's heritage",      "type": "object",      "properties": {        "_type": {          "default": "heritage",          "const": "heritage"        },        "community": {          "$ref": "#/$defs/ReferenceCommunity"        },        "ancestry": {          "$ref": "#/$defs/CharacterAncestry"        }      },      "required": [        "_type",        "community",        "ancestry"      ],      "additionalProperties": false    },    "ReferenceCommunity": {      "id": "ReferenceCommunity",      "title": "Reference to a Community",      "type": "object",      "properties": {        "_type": {          "const": "reference"        },        "_key": {          "const": "heritage/community"        },        "value": {          "type": "string"        }      },      "required": [        "_type",        "_key",        "value"      ],      "additionalProperties": false    },    "CharacterAncestry": {      "id": "CharacterAncestry",      "title": "Character Ancestry",      "description": "A character's ancestry",      "anyOf": [        {          "type": "object",          "properties": {            "_type": {              "default": "singleAncestry",              "const": "singleAncestry"            },            "ancestry": {              "$ref": "#/$defs/ReferenceAncestry"            }          },          "required": [            "_type",            "ancestry"          ],          "additionalProperties": false        },        {          "type": "object",          "properties": {            "_type": {              "default": "dualAncestry",              "const": "dualAncestry"            },            "primary": {              "$ref": "#/$defs/ReferenceAncestry"            },            "secondary": {              "$ref": "#/$defs/ReferenceAncestry"            }          },          "required": [            "_type",            "primary",            "secondary"          ],          "additionalProperties": false        }      ]    },    "ReferenceAncestry": {      "id": "ReferenceAncestry",      "title": "Reference to an Ancestry",      "type": "object",      "properties": {        "_type": {          "const": "reference"        },        "_key": {          "const": "heritage/ancestry"        },        "value": {          "type": "string"        }      },      "required": [        "_type",        "_key",        "value"      ],      "additionalProperties": false    },    "CharacterRole": {      "id": "CharacterRole",      "title": "Character Role",      "description": "Ruleset references to the class and subclass of a character",      "type": "object",      "properties": {        "_type": {          "default": "characterRole",          "const": "characterRole"        },        "class": {          "$ref": "#/$defs/ReferenceClass"        },        "subclass": {          "$ref": "#/$defs/ReferenceSubclass"        }      },      "required": [        "_type",        "class",        "subclass"      ],      "additionalProperties": false    },    "ReferenceClass": {      "id": "ReferenceClass",      "title": "Reference to a Class",      "type": "object",      "properties": {        "_type": {          "const": "reference"        },        "_key": {          "const": "role/class"        },        "value": {          "type": "string"        }      },      "required": [        "_type",        "_key",        "value"      ],      "additionalProperties": false    },    "ReferenceSubclass": {      "id": "ReferenceSubclass",      "title": "Reference to a Subclass",      "type": "object",      "properties": {        "_type": {          "const": "reference"        },        "_key": {          "const": "role/subclass"        },        "value": {          "type": "string"        }      },      "required": [        "_type",        "_key",        "value"      ],      "additionalProperties": false    },    "Experience": {      "id": "Experience",      "title": "Character Experience",      "description": "Experience represents a character specialization.",      "type": "object",      "properties": {        "_type": {          "default": "experience",          "const": "experience"        },        "name": {          "type": "string"        },        "description": {          "default": null,          "anyOf": [            {              "type": "string"            },            {              "type": "null"            }          ]        }      },      "required": [        "_type",        "name",        "description"      ],      "additionalProperties": false    },    "Level": {      "id": "Level",      "title": "Level",      "description": "The level of the character",      "examples": [        1,        2,        3,        4,        5,        6,        7,        8,        9,        10      ],      "type": "integer",      "minimum": 1,      "maximum": 10    },    "DynamicResource": {      "id": "DynamicResource",      "title": "Dynamic Resource",      "description": "A dynamic resource used by a character",      "type": "object",      "properties": {        "_type": {          "const": "dynamicResource"        },        "max": {          "type": "integer",          "minimum": 0,          "maximum": 9007199254740991        },        "current": {          "type": "integer",          "minimum": 0,          "maximum": 9007199254740991        }      },      "required": [        "_type",        "max",        "current"      ],      "additionalProperties": false    },    "DamageThresholds": {      "id": "DamageThresholds",      "title": "Damage Thresholds",      "description": "The damage thresholds of a character",      "type": "object",      "properties": {        "_type": {          "default": "damageThresholds",          "const": "damageThresholds"        },        "major": {          "type": "integer",          "minimum": 0,          "maximum": 100        },        "severe": {          "type": "integer",          "minimum": 0,          "maximum": 100        }      },      "required": [        "_type",        "major",        "severe"      ],      "additionalProperties": false    },    "TraitName": {      "id": "TraitName",      "title": "Trait Name",      "description": "The name of a character trait",      "examples": [        "Agility",        "Strength",        "Finesse",        "Instinct",        "Presence",        "Knowledge"      ],      "anyOf": [        {          "const": "Agility"        },        {          "const": "Strength"        },        {          "const": "Finesse"        },        {          "const": "Instinct"        },        {          "const": "Presence"        },        {          "const": "Knowledge"        }      ]    },    "Trait": {      "id": "Trait",      "title": "Trait",      "description": "The details of a character trait",      "examples": [        {          "_type": "trait",          "value": 2,          "locked": true        },        {          "_type": "trait",          "value": -1,          "locked": false        }      ],      "type": "object",      "properties": {        "_type": {          "default": "trait",          "const": "trait"        },        "value": {          "default": 0,          "type": "integer",          "minimum": -9007199254740991,          "maximum": 9007199254740991        },        "locked": {          "default": false,          "type": "boolean"        }      },      "required": [        "_type",        "value",        "locked"      ],      "additionalProperties": false    },    "Gold": {      "id": "Gold",      "title": "Gold",      "description": "The amount of gold held by a character",      "type": "object",      "properties": {        "_type": {          "const": "gold"        },        "handfuls": {          "default": 0,          "type": "integer",          "minimum": -9007199254740991,          "maximum": 9007199254740991        },        "bags": {          "default": 0,          "type": "integer",          "minimum": -9007199254740991,          "maximum": 9007199254740991        },        "chests": {          "default": 0,          "type": "integer",          "minimum": -9007199254740991,          "maximum": 9007199254740991        }      },      "required": [        "_type",        "handfuls",        "bags",        "chests"      ],      "additionalProperties": false    },    "ReferenceArmor": {      "id": "ReferenceArmor",      "title": "Reference to a piece of Armor",      "type": "object",      "properties": {        "_type": {          "const": "reference"        },        "_key": {          "const": "item/armor"        },        "value": {          "type": "string"        }      },      "required": [        "_type",        "_key",        "value"      ],      "additionalProperties": false    },    "ReferenceWeapon": {      "id": "ReferenceWeapon",      "title": "Reference to a Weapon",      "type": "object",      "properties": {        "_type": {          "const": "reference"        },        "_key": {          "const": "item/weapon"        },        "value": {          "type": "string"        }      },      "required": [        "_type",        "_key",        "value"      ],      "additionalProperties": false    },    "ReferenceThing": {      "id": "ReferenceThing",      "title": "Reference to a Thing",      "type": "object",      "properties": {        "_type": {          "const": "reference"        },        "_key": {          "const": "item/thing"        },        "value": {          "type": "string"        }      },      "required": [        "_type",        "_key",        "value"      ],      "additionalProperties": false    },    "Thing": {      "id": "Thing",      "title": "Thing",      "description": "A thing that can be added to a character's inventory",      "type": "object",      "properties": {        "_type": {          "default": "inventoryThing",          "const": "inventoryThing"        },        "name": {          "type": "string"        },        "description": {          "anyOf": [            {              "type": "string"            },            {              "type": "null"            }          ]        }      },      "required": [        "_type",        "name",        "description"      ],      "additionalProperties": false    }  }}