Summary

Description
Maps Pokemon to Moves they can learn as well as describing requirements and methods to learn those moves.
Data path
resources/data/pokemon_move.csv
Schema
https://poketools.gamestuff.info/data/schema/pokemon_move.json

Fields

species

Pokemon species identifier (e.g. basculin). A machine-usable name for the entity. This is usually a munged version of the entity name. An identifier must consist only of lowercase ASCII characters, 0-9, and/or a hyphen.

i.e. anything unique to the entity matching the regular expression ^[a-z0-9\-]+$ (Test it here)

type

string

pattern

^[a-z0-9\-]+$ (Test)

required

pokemon

Identifier for the Pokémon in the species above (e.g. basculin-red-striped). A machine-usable name for the entity. This is usually a munged version of the entity name. An identifier must consist only of lowercase ASCII characters, 0-9, and/or a hyphen.

i.e. anything unique to the entity matching the regular expression ^[a-z0-9\-]+$ (Test it here)

type

string

pattern

^[a-z0-9\-]+$ (Test)

required

version_group

Version Group identifier. A machine-usable name for the entity. This is usually a munged version of the entity name. An identifier must consist only of lowercase ASCII characters, 0-9, and/or a hyphen.

i.e. anything unique to the entity matching the regular expression ^[a-z0-9\-]+$ (Test it here)

type

string

pattern

^[a-z0-9\-]+$ (Test)

required

move

Move identifier. A machine-usable name for the entity. This is usually a munged version of the entity name. An identifier must consist only of lowercase ASCII characters, 0-9, and/or a hyphen.

i.e. anything unique to the entity matching the regular expression ^[a-z0-9\-]+$ (Test it here)

type

string

pattern

^[a-z0-9\-]+$ (Test)

required

learn_method

Move Learn Method identifier. A machine-usable name for the entity. This is usually a munged version of the entity name. An identifier must consist only of lowercase ASCII characters, 0-9, and/or a hyphen.

i.e. anything unique to the entity matching the regular expression ^[a-z0-9\-]+$ (Test it here)

type

string

pattern

^[a-z0-9\-]+$ (Test)

required

level

Learn level

type
integer
minimum
1
maximum
100
required
Only if learn_method is level-up

machine

Item identifier for the Machine. A machine-usable name for the entity. This is usually a munged version of the entity name. An identifier must consist only of lowercase ASCII characters, 0-9, and/or a hyphen.

i.e. anything unique to the entity matching the regular expression ^[a-z0-9\-]+$ (Test it here)

type

string

pattern

^[a-z0-9\-]+$ (Test)

required

Only if learn_method is machine

JSON Schema

View raw

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://poketools.gamestuff.info/data/schema/pokemon_move.json",
  "title": "Pokemon Move Map",
  "description": "Maps Pokemon to Moves they can learn as well as describing requirements and methods to learn those moves.",
  "type": "object",
  "properties": {
    "species": {
      "title": "Species identifier",
      "allOf": [
        {
          "$ref": "types/identifier.json"
        },
        {
          "type": "string",
          "$filters": [
            "speciesIdentifier",
            {
              "$func": "speciesInVersionGroup",
              "$vars": {
                "versionGroup": {
                  "$ref": "1/version_group"
                }
              }
            }
          ]
        }
      ]
    },
    "pokemon": {
      "title": "Pokemon identifier",
      "$ref": "types/identifier.json"
    },
    "version_group": {
      "title": "Version Group identifier",
      "allOf": [
        {
          "$ref": "types/identifier.json"
        },
        {
          "type": "string",
          "$filters": "versionGroupIdentifier"
        }
      ]
    },
    "move": {
      "title": "Move identifier",
      "allOf": [
        {
          "$ref": "types/identifier.json"
        },
        {
          "type": "string",
          "$filters": [
            "moveIdentifier",
            {
              "$func": "moveInVersionGroup",
              "$vars": {
                "versionGroup": {
                  "$ref": "1/version_group"
                }
              }
            }
          ]
        }
      ]
    },
    "learn_method": {
      "title": "Learn method identifier",
      "allOf": [
        {
          "$ref": "types/identifier.json"
        },
        {
          "type": "string",
          "$filters": "learnMethodIdentifier"
        }
      ]
    },
    "level": {
      "title": "Learn level",
      "description": "Only applicable if `learn_method` is `level-up`.",
      "oneOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        {
          "type": "string",
          "minLength": 0,
          "maxLength": 0
        }
      ]
    },
    "machine": {
      "title": "Machine identifier",
      "description": "Only applicable if `learn_method` is `machine`.",
      "oneOf": [
        {
          "allOf": [
            {
              "$ref": "types/identifier.json"
            },
            {
              "type": "string",
              "$filter": [
                "itemIdentifier",
                {
                  "$func": "itemInVersionGroup",
                  "$vars": {
                    "versionGroup": {
                      "$ref": "1/version_group"
                    }
                  }
                }
              ]
            }
          ]
        },
        {
          "type": "string",
          "minLength": 0,
          "maxLength": 0
        }
      ]
    }
  },
  "additionalProperties": false,
  "required": [
    "species",
    "pokemon",
    "version_group",
    "move",
    "learn_method"
  ]
}