1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-26 22:57:00 +02:00
vcmi/config/schemas/mod.json
Ivan Savenko 9237e6d97d Improved json validation
- split JsonNode.cpp into JsonNode and JsonDetail files
- validation should be notably faster (at least 10% faster loading)
- support for "format" field, allows checking existance of files.
- minor fixes in schemas
- msk/msg files are now optional
2013-10-26 19:33:34 +00:00

101 lines
2.7 KiB
JSON

{
"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" ],
"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"
},
"contact" : {
"type":"string",
"description": "Home page of mod or link to forum thread"
},
"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" }
},
"artifacts": {
"type":"array",
"description": "List of configuration files for artifacts",
"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" }
},
"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"
}
}
}
}
}
}
}