{
    "id": "http://www.ubisoft.com/ugc/acd/v1/quest/operators#",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "JSON Schema for Assassin's Creed Dynasty UGC",
    "QuestOperator": {
        "oneOf": [
            {
                "$ref": "#/definitions/TalkObjective"
            },
            {
                "$ref": "#/definitions/InteractStarter"
            },
            {
                "$ref": "#/definitions/InventoryStarter"
            },
            {
                "$ref": "#/definitions/TalkStarter"
            },
            {
                "$ref": "#/definitions/ZoneStarter"
            },
            {
                "$ref": "#/definitions/ConditionStarter"
            },
            {
                "$ref": "#/definitions/ObjectiveGroup"
            },
            {
                "$ref": "#/definitions/GroupOperator"
            },
            {
                "$ref": "#/definitions/GotoObjective"
            },
            {
                "$ref": "#/definitions/WaitAll"
            },
            {
                "$ref": "#/definitions/StopOperator"
            },
            {
                "$ref": "#/definitions/TriggerNode"
            },
            {
                "$ref": "#/definitions/InteractObjective"
            },
            {
                "$ref": "#/definitions/InventoryObjective"
            },
            {
                "$ref": "#/definitions/InvestigationObjective"
            },
            {
                "$ref": "#/definitions/SetVariableOperator"
            },
            {
                "$ref": "#/definitions/TransactionObjective"
            },
            {
                "$ref": "#/definitions/TransportObjective"
            },
            {
                "$ref": "#/definitions/KillObjective"
            },
            {
                "$ref": "#/definitions/EscapeObjective"
            },
            {
                "$ref": "#/definitions/ProtectObjective"
            },
            {
                "$ref": "#/definitions/VariableCondition"
            },
            {
                "$ref": "#/definitions/ActionOperator"
            },
            {
                "$ref": "#/definitions/FreeObjective"
            },
            {
                "$ref": "#/definitions/ModifyCharacterRelationOperator"
            },
            {
                "$ref": "#/definitions/FreeStarter"
            },
            {
                "$ref": "#/definitions/Nop"
            },
            {
                "$ref": "http://www.ubisoft.com/ugc/acd/v1/quest/behaviours#/AmbushBehaviour"
            },
            {
                "$ref": "http://www.ubisoft.com/ugc/acd/v1/quest/behaviours#/AttackBehaviour"
            },
            {
                "$ref": "http://www.ubisoft.com/ugc/acd/v1/quest/behaviours#/BodyguardBehaviour"
            },
            {
                "$ref": "http://www.ubisoft.com/ugc/acd/v1/quest/behaviours#/DefendBehaviour"
            },
            {
                "$ref": "http://www.ubisoft.com/ugc/acd/v1/quest/behaviours#/FleeBehaviour"
            },
            {
                "$ref": "http://www.ubisoft.com/ugc/acd/v1/quest/behaviours#/FollowAndGotoBehaviour"
            },
            {
                "$ref": "http://www.ubisoft.com/ugc/acd/v1/quest/behaviours#/PrisonerBehaviour"
            }
        ]
    },
    "QuestFlowOperator": {
        "oneOf": [
            {
                "$ref": "#/definitions/QuestOperator"
            },
            {
                "$ref": "#/definitions/GroupOperator"
            },
            {
                "$ref": "#/definitions/WaitAll"
            },
            {
                "$ref": "#/definitions/DebugStarter"
            },
            {
                "$ref": "#/definitions/Nop"
            }
        ]
    },
    "definitions": {
        "SetVariableOperator": {
            "oneOf": [
                {
                    "type": "object",
                    "properties": {
                        "ID": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        },
                        "Connections": {
                            "$ref": "#/definitions/ConnectionArray"
                        },
                        "Type": {
                            "type": "string",
                            "enum": [
                                "SetVariable"
                            ]
                        },
                        "Source": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        },
                        "Target": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        }
                    },
                    "required": [
                        "ID",
                        "Type",
                        "Source",
                        "Target"
                    ],
                    "additionalProperties": false
                },
                {
                    "type": "object",
                    "properties": {
                        "ID": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        },
                        "Connections": {
                            "$ref": "#/definitions/ConnectionArray"
                        },
                        "Type": {
                            "type": "string",
                            "enum": [
                                "SetVariable"
                            ]
                        },
                        "Value": {
                            "oneOf": [
                                {
                                    "type": "boolean"
                                },
                                {
                                    "type": "number"
                                }
                            ]
                        },
                        "Target": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        }
                    },
                    "required": [
                        "ID",
                        "Type",
                        "Value",
                        "Target"
                    ],
                    "additionalProperties": false
                }
            ]
        },
        "TransactionObjective": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "TransactionObjective"
                    ]
                },
                "ObjectiveInfo": {
                    "$ref": "#/definitions/ObjectiveInfo"
                },
                "TransactionInfo": {
                    "type": "object",
                    "properties": {
                        "Target": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        },
                        "Item": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        },
                        "Count": {
                            "type": "integer",
                            "minimum": 1
                        },
                        "FromPlayer": {
                            "type": "boolean"
                        },
                        "Settings": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                        }
                    },
                    "required": [
                        "Target",
                        "Item"
                    ],
                    "additionalProperties": false
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "TransactionInfo"
            ],
            "additionalProperties": false
        },
        "TransportObjective": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "enum": [
                        "TransportObjective"
                    ]
                },
                "ObjectiveInfo": {
                    "$ref": "#/definitions/ObjectiveInfo"
                },
                "TransportInfo": {
                    "type": "object",
                    "properties": {
                        "TargetCondition": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                        },
                        "Target": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/typedtarget#TypedTarget"
                        },
                        "Destination": {
                            "$ref": "#/definitions/TransportDestination"
                        },
                        "Count": {
                            "$ref": "#/definitions/TransportCount"
                        },
                        "Settings": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                        }
                    },
                    "required": [
                        "TargetCondition",
                        "Target",
                        "Destination"
                    ],
                    "additionalProperties": false
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "TransportInfo",
                "Connections"
            ],
            "additionalProperties": false
        },
        "TransportCount": {
            "type": "object",
            "oneOf": [
                {
                    "properties": {
                        "Type": {
                            "type": "string",
                            "enum": [
                                "All",
                                "Any"
                            ]
                        }
                    },
                    "required": [
                        "Type"
                    ],
                    "additionalProperties": false
                },
                {
                    "properties": {
                        "Type": {
                            "type": "string",
                            "enum": [
                                "Count"
                            ]
                        },
                        "Quantity": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    "required": [
                        "Type",
                        "Quantity"
                    ],
                    "additionalProperties": false
                }
            ]
        },
        "TransportDestination": {
            "type": "object",
            "oneOf": [
                {
                    "properties": {
                        "Type": {
                            "type": "string",
                            "enum": [
                                "Entity",
                                "Zone"
                            ]
                        },
                        "Resource": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        }
                    },
                    "required": [
                        "Type",
                        "Resource"
                    ],
                    "additionalProperties": false
                },
                {
                    "properties": {
                        "Type": {
                            "type": "string",
                            "enum": [
                                "NetworkNode"
                            ]
                        },
                        "NetworkNode": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                        }
                    },
                    "required": [
                        "Type",
                        "NetworkNode"
                    ],
                    "additionalProperties": false
                }
            ]
        },
        "InvestigationObjective": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "InvestigationObjective"
                    ]
                },
                "ObjectiveInfo": {
                    "$ref": "#/definitions/ObjectiveInfo"
                },
                "Clues": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "http://www.ubisoft.com/ugc/acd/v1/quest/entitytemplate#"
                            },
                            {
                                "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                            }
                        ]
                    }
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                },
                "Settings": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                }
            },
            "required": [
                "ID",
                "Type",
                "Clues"
            ],
            "additionalProperties": false
        },
        "InteractObjective": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "InteractObjective"
                    ]
                },
                "ObjectiveInfo": {
                    "$ref": "#/definitions/ObjectiveInfo"
                },
                "Targets": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/typedtarget#Targets"
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                },
                "Settings": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                }
            },
            "required": [
                "ID",
                "Type",
                "Targets"
            ],
            "additionalProperties": false
        },
        "InventoryObjective": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "InventoryObjective"
                    ]
                },
                "ObjectiveInfo": {
                    "$ref": "#/definitions/ObjectiveInfo"
                },
                "InventoryInfo": {
                    "type": "object",
                    "properties": {
                        "Item": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        },
                        "Count": {
                            "type": "integer",
                            "minimum": 1
                        },
                        "Evaluation": {
                            "$ref": "#/definitions/InventoryEvaluation"
                        },
                        "Targets": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/typedtarget#Targets"
                        },
                        "InjectTargets": {
                            "type": "boolean"
                        },
                        "Settings": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                        }
                    },
                    "required": [
                        "Item"
                    ],
                    "additionalProperties": false
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "InventoryInfo"
            ],
            "additionalProperties": false
        },
        "InventoryEvaluation": {
            "oneOf": [
                {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "enum": [
                                "Acknowledged"
                            ]
                        }
                    },
                    "required": [
                        "Type"
                    ],
                    "additionalProperties": false
                },
                {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "enum": [
                                "GainedItemLevel"
                            ]
                        },
                        "ItemLevel": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/UInt32"
                        },
                        "Condition": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        }
                    },
                    "required": [
                        "Type"
                    ],
                    "additionalProperties": false
                },
                {
                    "type": "object",
                    "properties": {
                        "Type": {
                            "type": "string",
                            "enum": [
                                "Gained",
                                "GainedItemCategory"
                            ]
                        },
                        "Condition": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        }
                    },
                    "required": [
                        "Type"
                    ],
                    "additionalProperties": false
                }
            ]
        },
        "WaitAll": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "WaitAll"
                    ]
                },
                "InputsCount": {
                    "type": "integer",
                    "minimum": 2
                },
                "InputsToWait": {
                    "type": "integer",
                    "minimum": 1
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "InputsCount"
            ],
            "additionalProperties": false
        },
        "StopOperator": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "StopOperator"
                    ]
                },
                "Behaviours": {
                    "type": "array",
                    "items": {
                        "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                    }
                },
                "Resources": {
                    "type": "array",
                    "items": {
                        "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                    }
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type"
            ],
            "additionalProperties": false
        },
        "TriggerNode": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "TriggerNode"
                    ]
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type"
            ],
            "additionalProperties": false
        },
        "GotoObjective": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "GotoObjective"
                    ]
                },
                "ObjectiveInfo": {
                    "$ref": "#/definitions/ObjectiveInfo"
                },
                "GotoInfo": {
                    "type": "object",
                    "properties": {
                        "Destination Type": {
                            "type": "string",
                            "enum": [
                                "Zone"
                            ]
                        },
                        "Destination": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        },
                        "Settings": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                        },
                        "Setting": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                        }
                    },
                    "additionalProperties": false
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type"
            ],
            "additionalProperties": false
        },
        "ObjectiveGroup": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "ObjectiveGroup"
                    ]
                },
                "ObjectiveInfo": {
                    "$ref": "#/definitions/ObjectiveInfo"
                },
                "GroupContent": {
                    "type": "object",
                    "properties": {
                        "Operators": {
                            "type": "array",
                            "items": {
                                "$ref": "#/Operator"
                            }
                        },
                        "InputPorts": {
                            "type": "array",
                            "items": {
                                "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                            }
                        },
                        "SuccessPorts": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/GroupOutputPort"
                            }
                        },
                        "FailPorts": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/GroupOutputPort"
                            }
                        },
                        "Connections": {
                            "$ref": "#/definitions/ConnectionArray"
                        }
                    },
                    "additionalProperties": false
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "GroupContent"
            ],
            "additionalProperties": false
        },
        "GroupOperator": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "Group"
                    ]
                },
                "GroupContent": {
                    "type": "object",
                    "properties": {
                        "Operators": {
                            "type": "array",
                            "items": {
                                "$ref": "#/Operator"
                            }
                        },
                        "InputPorts": {
                            "type": "array",
                            "items": {
                                "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                            }
                        },
                        "OutputPorts": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/GroupOutputPort"
                            }
                        },
                        "Connections": {
                            "$ref": "#/definitions/ConnectionArray"
                        }
                    },
                    "additionalProperties": false
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "GroupContent"
            ],
            "additionalProperties": false
        },
        "GroupOutputPort": {
            "oneOf": [
                {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                {
                    "type": "object",
                    "properties": {
                        "ID": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        },
                        "Behavior": {
                            "type": "string",
                            "enum": [
                                "Any",
                                "WaitAll",
                                "Count"
                            ]
                        },
                        "Count": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 255
                        }
                    },
                    "required": [
                        "ID",
                        "Behavior"
                    ],
                    "additionalProperties": false
                }
            ]
        },
        "InteractStarter": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "InteractStarter"
                    ]
                },
                "Target": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "InteractMode": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "UseIcon": {
                    "type": "boolean"
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "Target"
            ],
            "additionalProperties": false
        },
        "InventoryStarter": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "InventoryStarter"
                    ]
                },
                "Item": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Count": {
                    "type": "integer",
                    "minimum": 1
                },
                "UseIcon": {
                    "type": "boolean"
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Item"
            ],
            "additionalProperties": false
        },
        "TalkStarter": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "TalkStarter"
                    ]
                },
                "DialogueInfo": {
                    "$ref": "#/definitions/DialogueInfo"
                },
                "UseIcon": {
                    "type": "boolean"
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "DialogueInfo"
            ],
            "additionalProperties": false
        },
        "ZoneStarter": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "ZoneStarter"
                    ]
                },
                "Zones": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                    }
                },
                "UseIcon": {
                    "type": "boolean"
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "Zones"
            ],
            "additionalProperties": false
        },
        "ConditionStarter": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "ConditionStarter"
                    ]
                },
                "Condition": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/conditions#/Condition"
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "Condition"
            ],
            "additionalProperties": false
        },
        "DebugStarter": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "DebugStarter"
                    ]
                },
                "Actions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Action"
                    }
                },
                "Preset": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Position": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#Vector3"
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type"
            ],
            "additionalProperties": false
        },
        "Nop": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "Nop"
                    ]
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type"
            ],
            "additionalProperties": false
        },
        "ObjectiveInfo": {
            "type": "object",
            "properties": {
                "Title": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "ShowProgress": {
                    "type": "string",
                    "enum": [
                        "ProgressBar",
                        "Counter"
                    ]
                },
                "OverrideText" : {
                    "type": "integer"
                }
            },
            "required": [
                "Title"
            ],
            "additionalProperties": false
        },
        "KillObjective": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "type": "string",
                    "enum": [
                        "KillObjective"
                    ]
                },
                "ObjectiveInfo": {
                    "$ref": "#/definitions/ObjectiveInfo"
                },
                "KillInfo": {
                    "type": "object",
                    "properties": {
                        "Target": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/typedtarget#TypedTarget"
                        },
                        "KillZone": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        },
                        "Count": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/UInt32NotZero"
                        },
                        "Settings": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                        }
                    },
                    "additionalProperties": false
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "KillInfo"
            ],
            "additionalProperties": false
        },
        "TalkObjective": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "enum": [
                        "TalkObjective"
                    ]
                },
                "ObjectiveInfo": {
                    "$ref": "#/definitions/ObjectiveInfo"
                },
                "DialogueInfo": {
                    "$ref": "#/definitions/DialogueInfo"
                },
                "Settings": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "DialogueInfo"
            ],
            "additionalProperties": false
        },
        "EscapeObjective": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "enum": [
                        "EscapeObjective"
                    ]
                },
                "ObjectiveInfo": {
                    "$ref": "#/definitions/ObjectiveInfo"
                },
                "EscapeInfo": {
                    "type": "object",
                    "properties": {
                        "Zone": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        },
                        "Gameplay": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        },
                        "Anonymous Delay": {
                            "type": "number"
                        },
                        "Player Must Be On Gound": {
                            "type": "boolean"
                        },
                        "Settings": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                        }
                    },
                    "additionalProperties": false
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "EscapeInfo"
            ],
            "additionalProperties": false
        },
        "VariableCondition": {
            "Type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "enum": [
                        "VariableCondition"
                    ]
                },
                "Expression": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Inverse": {
                    "type": "boolean"
                },
                "Mode": {
                    "type": "string",
                    "enum": [
                        "Wait",
                        "Branch",
                        "WaitTransition"
                    ]
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "Expression",
                "Mode"
            ],
            "additionalProperties": false
        },
        "ActionOperator": {
            "Type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "enum": [
                        "ActionOperator"
                    ]
                },
                "Action": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/actions#/Action"
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "Action"
            ],
            "additionalProperties": false
        },
        "ModifyCharacterRelationOperator": {
            "Type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "enum": [
                        "ModifyCharacterRelationOperator"
                    ]
                },
                "ModifyCharacterRelationInfo": {
                    "type": "object",
                    "properties": {
                        "Entity": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        },
                        "RelationModifications": {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                                "type": "object",
                                "properties": {
                                    "Operation": {
                                        "type": "string",
                                        "enum": [
                                            "Add",
                                            "Remove"
                                        ]
                                    },
                                    "RelationMember": {
                                        "anyOf": [
                                            {
                                                "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                                            },
                                            {
                                                "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                                            }
                                        ]
                                    },
                                    "RelationStatus": {
                                        "type": "string",
                                        "enum": [
                                            "None",
                                            "Ally",
                                            "Enemy",
                                            "Tolerated"
                                        ]
                                    }
                                },
                                "required": [
                                    "RelationMember"
                                ],
                                "additionalProperties": false
                            }
                        }
                    },
                    "required": [
                        "Entity",
                        "RelationModifications"
                    ],
                    "additionalProperties": false
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "ModifyCharacterRelationInfo"
            ],
            "additionalProperties": false
        },
        "FreeObjective": {
            "Type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "enum": [
                        "FreeObjective"
                    ]
                },
                "ObjectiveInfo": {
                    "$ref": "#/definitions/ObjectiveInfo"
                },
                "FreeInfo": {
                    "type": "object",
                    "properties": {
                        "Prisoners": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/typedtarget#Targets"
                        },
                        "Count": {
                            "type": "integer",
                            "minimum": 1
                        },
                        "PrisonerBehaviour": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/quest/behaviours#/EmbeddedPrisonerBehaviour"
                        },
                        "Settings": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                        }
                    },
                    "required": [
                        "Prisoners"
                    ],
                    "additionalProperties": false
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "FreeInfo"
            ],
            "additionalProperties": false
        },
        "FreeStarter": {
            "Type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "enum": [
                        "FreeStarter"
                    ]
                },
                "Prisoners": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/typedtarget#Targets"
                },
                "Count": {
                    "type": "integer",
                    "minimum": 1
                },
                "PrisonerBehaviour": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/quest/behaviours#/EmbeddedPrisonerBehaviour"
                },
                "WaitUntilTargetIsPrisoner": {
                    "type": "boolean"
                },
                "UseIcon": {
                    "type": "boolean"
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "Prisoners"
            ],
            "additionalProperties": false
        },
        "DialogueInfo": {
            "type": "object",
            "properties": {
                "Resource": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "PortType": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "Port": {
                                "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                            },
                            "StopTalk": {
                                "type": "boolean"
                            }
                        },
                        "additionalProperties": false
                    }
                }
            },
            "required": [
                "Resource"
            ],
            "additionalProperties": false
        },
        "ProtectObjective": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "enum": [
                        "ProtectObjective"
                    ]
                },
                "ObjectiveInfo": {
                    "$ref": "#/definitions/ObjectiveInfo"
                },
                "ProtectInfo": {
                    "type": "object",
                    "properties": {
                        "Targets": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/typedtarget#Targets"
                        },
                        "Gameplay": {
                            "$ref": "#/definitions/ProtectInfoGameplay"
                        },
                        "TargetCondition": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString",
                            "enum": [
                                "All",
                                "AtLeastOne",
                                "Count"
                            ]
                        },
                        "AliveNeededCount": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/UInt32NotZero"
                        },
                        "PlayerProximityRequired": {
                            "type": "boolean"
                        },
                        "Behaviour": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/quest/behaviours#/EmbeddedFollowAndGotoBehaviour"
                        },
                        "Settings": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#ObjectId"
                        }
                    },
                    "required": [
                        "Targets",
                        "Gameplay",
                        "TargetCondition"
                    ],
                    "additionalProperties": false
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "ProtectInfo"
            ],
            "additionalProperties": false
        },
        "ProtectInfoGameplay": {
            "type": "object",
            "oneof": [
                {
                    "properties": {
                        "Type": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString",
                            "enum": [
                                "Protect_Time"
                            ]
                        },
                        "Time": {
                            "type": "number",
                            "minimum": 0
                        }
                    },
                    "required": [
                        "Type"
                    ],
                    "additionalProperties": false
                },
                {
                    "properties": {
                        "Type": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString",
                            "enum": [
                                "Protect_Waves"
                            ]
                        },
                        "WaveGenerator": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        }
                    },
                    "required": [
                        "Type",
                        "WaveGenerator"
                    ],
                    "additionalProperties": false
                },
                {
                    "properties": {
                        "Type": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString",
                            "enum": [
                                "Escort"
                            ]
                        },
                        "DestinationType": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString",
                            "enum": [
                                "Entity",
                                "Zone",
                                "NetworkNode"
                            ]
                        },
                        "Destination": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        },
                        "IconDisplayType": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString",
                            "enum": [
                                "Targets",
                                "Destination",
                                "Both"
                            ]
                        },
                        "PlayerRequiredDestination": {
                            "type": "boolean"
                        }
                    },
                    "required": [
                        "Type",
                        "Destination",
                        "DestinationType"
                    ],
                    "additionalProperties": false
                },
                {
                    "properties": {
                        "Type": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString",
                            "enum": [
                                "Escape"
                            ]
                        },
                        "Destination": {
                            "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                        }
                    },
                    "required": [
                        "Type",
                        "Destination"
                    ],
                    "additionalProperties": false
                }
            ]
        },
        "QuestOperator": {
            "type": "object",
            "properties": {
                "ID": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Type": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Definition": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Connections": {
                    "$ref": "#/definitions/ConnectionArray"
                }
            },
            "required": [
                "ID",
                "Type",
                "Definition"
            ],
            "additionalProperties": false
        },
        "Connection": {
            "type": "object",
            "properties": {
                "Port": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "Target": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                },
                "TargetPort": {
                    "$ref": "http://www.ubisoft.com/ugc/acd/v1/types#/RequiredString"
                }
            },
            "additionalProperties": false,
            "required": [
                "Port",
                "Target"
            ]
        },
        "ConnectionArray": {
            "type": "array",
            "items": {
                "$ref": "#/definitions/Connection"
            }
        }
    }
}