json_schema: {
      "definitions": {
          "bitmap": {
              "properties": {
                  "id": {
                      "type": "string"
                  },
                  "resource_type": {
                      "enum": [
                          "asset",
                          "file",
                          "resource",
                          "user"
                      ],
                      "type": "string"
                  },
                  "type": {
                      "enum": [
                          "compressed",
                          "compressed_cubemap",
                          "cubemap",
                          "uncompressed"
                      ],
                      "type": "string"
                  }
              },
              "required": [
                  "resource_type",
                  "type",
                  "id"
              ],
              "type": "object"
          },
          "bitmap_texture_properties": {
              "properties": {
                  "bitmap": {
                      "$ref": "#/definitions/bitmap"
                  },
                  "texture_parameters": {
                      "$ref": "#/definitions/texture_parameters"
                  },
                  "type": {
                      "pattern": "bitmap",
                      "type": "string"
                  }
              },
              "required": [
                  "bitmap",
                  "type"
              ],
              "type": "object"
          },
          "texture": {},
          "texture_filter_type": {
              "enum": [
                  "GL_LINEAR",
                  "GL_NEAREST",
                  "GL_NEAREST_MIPMAP_NEAREST",
                  "GL_NEAREST_MIPMAP_LINEAR",
                  "GL_LINEAR_MIPMAP_NEAREST",
                  "GL_LINEAR_MIPMAP_LINEAR"
              ],
              "type": "string"
          },
          "texture_parameters": {
              "properties": {
                  "anisotropic_value": {
                      "enum": [
                          1,
                          2,
                          4,
                          8,
                          16
                      ],
                      "type": "integer"
                  },
                  "mag_filter_type": {
                      "$ref": "#/definitions/texture_filter_type"
                  },
                  "min_filter_type": {
                      "$ref": "#/definitions/texture_filter_type"
                  },
                  "wrap_s_type": {
                      "$ref": "#/definitions/texture_wrap_type"
                  },
                  "wrap_t_type": {
                      "$ref": "#/definitions/texture_wrap_type"
                  }
              },
              "type": "object"
          },
          "texture_wrap_type": {
              "enum": [
                  "GL_CLAMP_TO_EDGE",
                  "GL_MIRRORED_REPEAT",
                  "GL_REPEAT"
              ],
              "type": "string"
          }
      },
      "oneOf": [
          {
              "$ref": "#/definitions/bitmap_texture_properties"
          }
      ],
      "type": "object"
  }