2020-12-13 15:56:59 +00:00
{
"$schema" : "http://json-schema.org/draft-07/schema#" ,
"title" : "Pokemon" ,
"description" : "A schema for pokemon species data." ,
"type" : "object" ,
"properties" : {
"$schema" : {
"type" : "string"
}
} ,
"patternProperties" : {
"^.*$" : {
"type" : "object" ,
"additionalProperties" : false ,
"required" : [
"species" ,
"id" ,
"genderRatio" ,
"growthRate" ,
"baseHappiness" ,
"catchRate" ,
"color" ,
"genderDifference" ,
"eggGroups" ,
"eggCycles" ,
"tags" ,
"formes" ,
"evolutions"
] ,
"properties" : {
2021-01-16 17:02:25 +00:00
"species" : {
"type" : "string" ,
"description" : "The internal name of the Pokemon species."
} ,
"id" : {
"type" : "number" ,
"description" : "The numerical pokedex identifier of the species."
} ,
2020-12-13 15:56:59 +00:00
"genderRatio" : {
"type" : "number" ,
2021-01-16 17:02:25 +00:00
"description" : "The gender ratio of the species. A value of -1 means genderless, a value of 0 means always female, 100 means always male. 50 means 50% male, 50% female, etc." ,
2020-12-13 15:56:59 +00:00
"minimum" : -1 ,
"maximum" : 100
} ,
"growthRate" : {
"type" : "string" ,
2021-01-16 17:02:25 +00:00
"description" : "The growth rate of the species." ,
2020-12-13 15:56:59 +00:00
"enum" : [
"Erratic" ,
"Fast" ,
"MediumFast" ,
"MediumSlow" ,
"Slow" ,
"Fluctuating"
]
} ,
"baseHappiness" : {
"type" : "integer" ,
2021-01-16 17:02:25 +00:00
"description" : "The base happiness/friendship a species should have when captured." ,
2020-12-13 15:56:59 +00:00
"minimum" : 0 ,
"maximum" : 255
} ,
"catchRate" : {
"type" : "integer" ,
2021-01-16 17:02:25 +00:00
"description" : "The catch rate of the species. 0 means impossible to capture, 255 means a perfect capture every time." ,
2020-12-13 15:56:59 +00:00
"minimum" : 0 ,
"maximum" : 255
} ,
"color" : {
2021-01-16 17:02:25 +00:00
"type" : "string" ,
"description" : "The color of the species. No real use in game outside of pokedex purposes."
2020-12-13 15:56:59 +00:00
} ,
"genderDifference" : {
2021-01-16 17:02:25 +00:00
"type" : "boolean" ,
"description" : "Whether there are different sprites for different genders.."
2020-12-13 15:56:59 +00:00
} ,
"eggGroups" : {
"type" : "array" ,
2021-01-16 17:02:25 +00:00
"description" : "The egg groups the species has for breeding purposes." ,
2020-12-13 15:56:59 +00:00
"items" : {
"type" : "string" ,
"enum" : [
"monster" ,
"water1" ,
"bug" ,
"flying" ,
"field" ,
"fairy" ,
"grass" ,
"humanlike" ,
"water3" ,
"mineral" ,
"amorphous" ,
"water2" ,
"ditto" ,
"dragon" ,
"undiscovered"
]
}
} ,
"eggCycles" : {
"type" : "integer" ,
2021-01-16 17:02:25 +00:00
"description" : "The number of egg cycles required for an egg of this species to hatch" ,
2020-12-13 15:56:59 +00:00
"minimum" : 0
} ,
"tags" : {
"type" : "array" ,
2021-01-16 17:02:25 +00:00
"description" : "Additional tags on the species for scripting purposes" ,
2020-12-13 15:56:59 +00:00
"items" : {
"type" : "string"
}
} ,
"formes" : {
"required" : [ "default" ] ,
"patternProperties" : {
"^.*$" : {
"additionalProperties" : false ,
"type" : "object" ,
"required" : [
"abilities" ,
"hiddenAbilities" ,
"baseStats" ,
"evReward" ,
"types" ,
"height" ,
"weight" ,
"baseExp" ,
"moves"
] ,
"properties" : {
"abilities" : {
"type" : "array" ,
"minItems" : 1 ,
2021-01-16 17:02:25 +00:00
"description" : "The normal abilities a forme has." ,
2020-12-13 15:56:59 +00:00
"items" : {
"type" : "string"
}
} ,
"hiddenAbilities" : {
"type" : "array" ,
"minItems" : 0 ,
2021-01-16 17:02:25 +00:00
"description" : "The additional hidden abilities a forme has." ,
2020-12-13 15:56:59 +00:00
"items" : {
"type" : "string"
}
} ,
"baseStats" : {
"required" : [
"hp" ,
"attack" ,
"defense" ,
"specialAttack" ,
"specialDefense" ,
"speed"
] ,
"hp" : {
"type" : "integer" ,
"minimum" : 0
} ,
"attack" : {
"type" : "integer" ,
"minimum" : 0
} ,
"defense" : {
"type" : "integer" ,
"minimum" : 0
} ,
"specialAttack" : {
"type" : "integer" ,
"minimum" : 0
} ,
"specialDefense" : {
"type" : "integer" ,
"minimum" : 0
} ,
"speed" : {
"type" : "integer" ,
"minimum" : 0
}
} ,
"evReward" : {
"hp" : {
"type" : "integer" ,
"minimum" : 0
} ,
"attack" : {
"type" : "integer" ,
"minimum" : 0
} ,
"defense" : {
"type" : "integer" ,
"minimum" : 0
} ,
"specialAttack" : {
"type" : "integer" ,
"minimum" : 0
} ,
"specialDefense" : {
"type" : "integer" ,
"minimum" : 0
} ,
"speed" : {
"type" : "integer" ,
"minimum" : 0
}
} ,
"types" : {
"type" : "array" ,
"minLength" : 1 ,
"items" : {
"type" : "string" ,
"enum" : [
"normal" ,
"fighting" ,
"flying" ,
"poison" ,
"ground" ,
"rock" ,
"bug" ,
"ghost" ,
"steel" ,
"fire" ,
"water" ,
"grass" ,
"electric" ,
"psychic" ,
"ice" ,
"dragon" ,
"dark" ,
"fairy" ,
"divine"
]
}
} ,
"height" : {
"type" : "number" ,
"minimum" : 0.1
} ,
"weight" : {
"type" : "number" ,
"minimum" : 0.1
} ,
"baseExp" : {
"type" : "integer" ,
"minimum" : 0
} ,
"isMega" : {
"type" : "boolean"
} ,
"moves" : { }
}
}
}
} ,
"evolutions" : {
"type" : "array" ,
"items" : {
"type" : "object" ,
2021-06-26 14:17:46 +00:00
"required" : [ "species" , "method" , "data" ] ,
2020-12-13 15:56:59 +00:00
"properties" : {
"species" : {
"type" : "string"
} ,
"method" : {
2021-06-26 14:17:46 +00:00
"type" : "string" ,
"enum" : [
"level" ,
"item" ,
"itemmale" ,
"itemfemale" ,
"holditem" ,
"dayholditem" ,
"nightholditem" ,
"hasmove" ,
"happiness" ,
"happinessday" ,
"happinessnight" ,
"levelfemale" ,
"levelmale" ,
"trade" ,
"tradespecies" ,
"tradeitem" ,
"location" ,
"custom"
]
}
} ,
"anyOf" : [
{
"properties" : {
"method" : {
"enum" : [
"level" ,
"levelfemale" ,
"levelmale" ,
"happiness" ,
"happinessday" ,
"happinessnight"
]
} ,
"data" : {
"type" : "integer"
}
}
2020-12-13 15:56:59 +00:00
} ,
2021-06-26 14:17:46 +00:00
{
"properties" : {
"method" : {
"enum" : [
"item" ,
"itemmale" ,
"itemfemale" ,
"holditem" ,
"dayholditem" ,
"nightholditem" ,
"hasmove" ,
"trade" ,
"tradespecies" ,
"tradeitem" ,
"location"
]
} ,
"data" : {
"type" : "string"
}
}
} ,
{
"properties" : {
"method" : { "enum" : [ "custom" ] } ,
"data" : {
"type" : "array" ,
"items" : [
{ "type" : "string" , "description" : "Method identifier" }
]
}
}
2020-12-13 15:56:59 +00:00
}
2021-06-26 14:17:46 +00:00
]
2020-12-13 15:56:59 +00:00
}
}
}
}
}
}