{
	"type":"object",
	"$schema": "http://json-schema.org/draft-04/schema",
	"title" : "VCMI hero class format",
	"description" : "Format used to define classes of heroes in VCMI",
	"required" : [
		"animation", "faction", "highLevelChance", "lowLevelChance",
		"name", "primarySkills", "secondarySkills", "tavern", "defaultTavern",
		"affinity", "commander", "mapObject"
	],

	"additionalProperties" : false,
	"properties":{
		"animation": {
			"type":"object",
			"additionalProperties" : false,
			"description": "Files related to hero animation",
			"required": [ "battle" ],
			"properties":{
				"battle": {
					"type":"object",
					"additionalProperties" : false,
					"description": "Hero animations for battle",
					"required": [ "female", "male" ],
					"properties":{
						"female": {
							"type":"string",
							"description": "Female version",
							"format" : "defFile"
						},
						"male": {
							"type":"string",
							"description": "Male version",
							"format" : "defFile"
						}
					}
				}
			}
		},
		"mapObject" : {
			"properties" : {
				"filters" : {
					"type" : "object",
					"additionalProperties" : { "type" : "array" }
				}
			}
		},
		"index" : {
			"type" : "number",
			"description" : "Private field to break things, do not use."
		},
		"faction": {
			"type":"string",
			"description": "Faction this hero class belongs to"
		},
		"affinity" : {
			"type" : "string",
			"description" : "Affinity of hero class, might or magic",
			"enum" : [ "might", "magic"]
		},
		"commander": {
			"type":"string",
			"description": "Identifier of creature that is used as commander by heroes"
		},
		"highLevelChance": {
			"type":"object",
			"description": "Chance to get specific primary skill on level-up, applicable for levels starting from 10",
			"additionalProperties":{
				"type":"number"
			}
		},
		"lowLevelChance": {
			"type":"object",
			"description": "Chance to get specific primary skill on level-up, applicable for levels less than 10",
			"additionalProperties":{
				"type":"number"
			}
		},
		"name": {
			"type":"string",
			"description": "Translatable name of hero class"
		},
		"primarySkills": {
			"type":"object",
			"description": "Initial primary skills of heroes",
			"additionalProperties":{
				"type":"number"
			}
		},
		"secondarySkills": {
			"type":"object",
			"description": "Chance to get specific secondary skill on level-up. All missing skills are considered to be banned",
			"additionalProperties":{
				"type":"number"
			}
		},
		"defaultTavern" : {
			"type" : "number",
			"description" : "Default chance for hero to appear in tavern, used only when value vas not set in tavern field",
			"minimum" : 0
		},

		"tavern": {
			"type":"object",
			"description": "Chance for this hero to appear in tavern of this factions. Reversed version of field \"tavern\" from town format",
			"additionalProperties":{
				"type":"number",
				"minimum" : 0
			}
		}
	}
}
