{
	"type":"object",
	"additionalProperties" : false,
	"$schema": "http://json-schema.org/draft-04/schema",
	"title" : "VCMI town building format",
	"description" : "Format used to define town buildings in VCMI",
	"required": [ "id" ],

	"definitions" :
	{
		"buildingRequirement" : {
			"type" : "array",
			"items" : [
				{
					"description" : "First item that indicates type of following expression",
					"type" : "string"
				}
			],
			"additionalItems" :
			{
				"description" : "Following items that contain expression elements",
				"$ref" : "#/definitions/buidingRequirement"				
			}
		} 
	},

	"properties":{
		"id": {
			"type":"number",
			"description" : "Numeric identifier of this building"
		},
		"mode": {
			"type":"string",
			"enum" : [ "normal", "auto", "special", "grail" ],
			"description" : "Mode in which this building will be built"
		},
		"requires": {
			"$ref" : "#/definitions/buildingRequirement",
			"description" : "List of town buildings that must be built before this one"
		},
		"upgrades": {
			"description" : "If this building is upgrade, identifier of base building",
			"type":"string"
		},
		"name" : {
			"description" : "Name of this building",
			"type" : "string"
		},
		"description" : {
			"description" : "Full decsription of this building",
			"type" : "string"
		},
		"cost": {
			"type":"object",
			"additionalProperties" : false,
			"description": "Cost to build this building",
			"properties":{
				"wood":    { "type":"number"},
				"mercury": { "type":"number"},
				"ore":     { "type":"number"},
				"sulfur":  { "type":"number"},
				"crystal": { "type":"number"},
				"gems":    { "type":"number"},
				"gold":    { "type":"number"}
			}
	    },		
		"produce": {
			"type":"object",
			"additionalProperties" : false,
			"description": "Resources this building produce each day",
			"properties":{
				"wood":    { "type":"number"},
				"mercury": { "type":"number"},
				"ore":     { "type":"number"},
				"sulfur":  { "type":"number"},
				"crystal": { "type":"number"},
				"gems":    { "type":"number"},
				"gold":    { "type":"number"}
			}
		}
	  
	}
}