{ "type":"object", "$schema": "http://json-schema.org/draft-04/schema", "title" : "VCMI mod file format", "description" : "Format used to define main mod file (mod.json) in VCMI", "required" : [ "name", "description", "version", "author", "contact", "modType" ], "definitions" : { "localizable" : { "type":"object", "additionalProperties" : false, "required" : [ "name", "description" ], "properties":{ "name": { "type":"string", "description": "Short name of your mod. No more than 2-3 words" }, "description": { "type":"string", "description": "More lengthy description of mod. No hard limit" }, "modType" : { "type":"string", "description": "Type of mod, e.g. Town, Artifacts, Graphical." }, "author" : { "type":"string", "description": "Author of the mod. Can be nickname, real name or name of team" }, "translations":{ "type":"array", "description": "List of files with translations for this language", "items": { "type":"string", "format" : "textFile" } }, "changelog" : { "type":"object", "description": "List of changes/new features in each version", "additionalProperties" : { "type" : "array", "items" : { "type":"string" } } } } } }, "additionalProperties" : false, "properties":{ "name": { "type":"string", "description": "Short name of your mod. No more than 2-3 words" }, "description": { "type":"string", "description": "More lengthy description of mod. No hard limit" }, "modType" : { "type":"string", "description": "Type of mod, e.g. Town, Artifacts, Graphical." }, "version" : { "type":"string", "description": "Current mod version, up to 3 numbers, dot-separated. Format: A.B.C" }, "author" : { "type":"string", "description": "Author of the mod. Can be nickname, real name or name of team" }, "licenseName" : { "type":"string", "description": "Name of the license, recommended is Creative Commons Attribution-ShareAlike" }, "licenseURL" : { "type":"string", "description": "Url to license text, e.g. http://creativecommons.org/licenses/by-sa/4.0/deed" }, "contact" : { "type":"string", "description": "Home page of mod or link to forum thread" }, "language" : { "type":"string", "description": "Base language of the mod, before applying localizations. By default vcmi assumes English", "enum" : [ "english", "german", "polish", "russian", "ukrainian" ], }, "depends": { "type":"array", "description": "List of mods that are required to run this one", "items": { "type":"string" } }, "conflicts": { "type":"array", "description": "List of mods that can't be enabled in the same time as this one", "items": { "type":"string" } }, "compatibility" : { "type":"object", "description": "Supported versions of vcmi engine", "additionalProperties" : false, "properties" : { "min" : { "type" : "string", "description" : "minimal compatible vcmi engine version in a format major.minor.patch. When specified, earlier versions won't be supported" //"pattern" : "^\\d+\\.\\d+\\.\\d+$" // Not implemented in schema support }, "max" : { "type" : "string", "description" : "maximum compatible vcmi engine version in a format major.minor.patch. When specified, later versions won't be supported" //"pattern" : "^\\d+\\.\\d+\\.\\d+$" // Not implemented in schema support } } }, "keepDisabled" : { "type":"boolean", "description": "If set to true, mod will not be enabled automatically on install" }, "english" : { "$ref" : "#/definitions/localizable" }, "german" : { "$ref" : "#/definitions/localizable" }, "polish" : { "$ref" : "#/definitions/localizable" }, "russian" : { "$ref" : "#/definitions/localizable" }, "ukrainian" : { "$ref" : "#/definitions/localizable" }, "translations":{ "type":"array", "description": "List of files with translations for this language", "items": { "type":"string", "format" : "textFile" } }, "artifacts": { "type":"array", "description": "List of configuration files for artifacts", "items": { "type":"string", "format" : "textFile" } }, "bonuses":{ "type":"array", "description": "List of configuration files for bonuses", "items": { "type":"string", "format" : "textFile" } }, "creatures": { "type":"array", "description": "List of configuration files for creatures", "items": { "type":"string", "format" : "textFile" } }, "factions": { "type":"array", "description": "List of configuration files for towns/factions", "items": { "type":"string", "format" : "textFile" } }, "heroClasses": { "type":"array", "description": "List of configuration files for hero classes", "items": { "type":"string", "format" : "textFile" } }, "heroes": { "type":"array", "description": "List of configuration files for heroes", "items": { "type":"string", "format" : "textFile" } }, "objects": { "type":"array", "description": "List of configuration files for objects", "items": { "type":"string", "format" : "textFile" } }, "scripts": { "type":"array", "description": "List of configuration files for scripts", "items": { "type":"string", "format" : "textFile" } }, "spells": { "type":"array", "description": "List of configuration files for spells", "items": { "type":"string", "format" : "textFile" } }, "skills": { "type":"array", "description": "List of configuration files for skills", "items": { "type":"string", "format" : "textFile" } }, "templates":{ "type":"array", "description": "List of configuration files for RMG templates", "items": { "type":"string", "format" : "textFile" } }, "battlefields":{ "type":"array", "description": "List of configuration files for battlefields", "items": { "type":"string", "format" : "textFile" } }, "obstacles":{ "type":"array", "description": "List of configuration files for obstacles", "items": { "type":"string", "format" : "textFile" } }, "terrains":{ "type":"array", "description": "List of configuration files for terrains", "items": { "type":"string", "format" : "textFile" } }, "roads":{ "type":"array", "description": "List of configuration files for roads", "items": { "type":"string", "format" : "textFile" } }, "rivers":{ "type":"array", "description": "List of configuration files for rivers", "items": { "type":"string", "format" : "textFile" } }, "changelog" : { "type":"object", "description": "List of changes/new features in each version", "additionalProperties" : { "type" : "array", "items" : { "type":"string" } } }, "filesystem": { "type":"object", "description": "Optional, description on how files are organized in your mod. In most cases you do not need to use this field", "additionalProperties":{ "type":"array", "description" : "list of data sources attached to this mount point", "items": { "type":"object", "additionalProperties" : false, "properties":{ "path": { "type":"string", "description": "Path to data source" }, "type": { "type" : "string", "enum" : [ "dir", "lod", "snd", "vid", "map", "zip" ], "description" : "Type of data source" } } } } } } }