{
  "$schema": "http://json-schema.org/draft-07/schema",
  "title": "Skip Pack",
  "description": "Skin pack definition.",
  "type": "object",
  "additionalProperties": false,
  "required": ["serialize_name", "localization_name", "skins"],
  "properties": {
    "serialize_name": {
      "title": "Serialize Name",
      "description": "The name of the pack as an identifier, they must be the same as the name of pack without spaces.",
      "type": "string"
    },
    "localization_name": { "title": "Locatlization Name", "description": "The key in the language file to use to display text.", "type": "string" },
    "skins": {
      "type": "array",
      "title": "Skins",
      "description": "An array of item.",
      "examples": [
        {
          "localization_name": "TemplateSkin1",
          "geometry": "geometry.humanoid.custom",
          "texture": "some_texture.png",
          "type": "paid"
        }
      ],
      "items": {
        "title": "Skin",
        "description": "A single skin definition.",
        "additionalProperties": false,
        "required": ["localization_name", "geometry", "texture", "type"],
        "type": "object",
        "properties": {
          "localization_name": {
            "title": "Locatlization Name",
            "description": "The key in the language file to use to display text.",
            "type": "string"
          },
          "geometry": {
            "title": "Geometry",
            "description": "The type of geometry to use.",
            "type": "string",
            "pattern": "^[Gg]eometry\\..+$",
            "examples": ["geometry.humanoid.custom", "geometry.humanoid.customSlim"]
          },
          "texture": { "title": "Texture", "description": "The filename of the skin.", "pattern": "^.*\\.png$" },
          "type": { "title": "Type", "description": "The type of skin.", "enum": ["free", "paid"] }
        }
      }
    }
  }
}
