{
    "id": "http://www.ubisoft.com/ugc/acd/v1/types#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "JSON Schema for Assassin's Creed Dynasty UGC",
    "Vector3": {
        "type": "array",
        "items": [
            {
                "type": "number"
            }
        ],
        "minItems": 3,
        "maxItems": 3
    },
    "Quaternion": {
        "type": "array",
        "items": [
            {
                "type": "number"
            }
        ],
        "minItems": 4,
        "maxItems": 4
    },
    "UInt64": {
        "type": "integer",
        "minimum": 0
    },
    "UInt64NotZero": {
        "allOf": [
            {
                "$ref": "#/UInt64"
            },
            {
                "exclusiveMinimum": true
            }
        ]
    },
    "UInt32": {
        "type": "integer",
        "minimum": 0
    },
    "UInt32NotZero": {
        "allOf": [
            {
                "$ref": "#/UInt32"
            },
            {
                "exclusiveMinimum": true
            }
        ]
    },
    "ObjectId": {
        "$ref": "#/UInt64NotZero"
    },
    "Guid": {
        "type": "string",
        "pattern": "^[a-f0-9]{8}\\-([a-f0-9]{4}\\-){3}[a-f0-9]{12}$"
    },
    "Date": {
        "type": "string",
        "pattern": "^[0-9]{4}\\-[0-9]{2}\\-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]\\.[0-9]+Z$"
    },
    "RequiredString": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_\\-]+",
        "maxLength": 1024
    },
    "VariableID": {
        "type": "string",
        "pattern": "^[A-Za-z][A-Za-z0-9]+$",
        "maxLength": 1024
    },
    "GenderizedText": {
        "type": "object",
        "properties": {
            "Female": {
                "$ref": "#/RequiredString"
            },
            "Male": {
                "$ref": "#/RequiredString"
            }
        },
        "required": [
            "Female",
            "Male"
        ],
        "additionalProperties": false
    },
    "Text": {
        "oneOf": [
            {
                "$ref": "#/RequiredString"
            },
            {
                "$ref": "#/GenderizedText"
            }
        ]
    }
}