{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "3714031231",
    "x-format-version": "1.21.30",
    "x-minecraft-version": "1.26.0",
    "definitions": {
        "943617905": {
            "title": "TradeTier",
            "type": "object",
            "properties": {
                "groups": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/3153354884"
                    }
                },
                "total_exp_required": {
                    "type": "integer",
                    "minimum": 0.0
                }
            },
            "required": [
                "groups",
                "total_exp_required"
            ]
        },
        "1093643626": {
            "title": "TradeItemList",
            "oneOf": [
                {
                    "$ref": "#/definitions/56017534"
                },
                {
                    "type": "object",
                    "properties": {
                        "choice": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/56017534"
                            }
                        }
                    },
                    "required": [
                        "choice"
                    ]
                }
            ]
        },
        "3153354884": {
            "title": "TradeGroup",
            "type": "object",
            "properties": {
                "num_to_select": {
                    "type": "integer",
                    "default": 0,
                    "minimum": 0.0
                },
                "trades": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/3738829565"
                    },
                    "minItems": 1
                }
            },
            "required": [
                "trades"
            ]
        },
        "1088251937": {
            "title": "Filter Group",
            "description": "Filters allow data objects to specify test criteria which allows their use. Filters can be defined by a single object of type (Filter Test), an array of tests, collection groups, or a combination of these objects.",
            "oneOf": [
                {
                    "$ref": "#/definitions/4150989894"
                },
                {
                    "type": "array",
                    "items": {
                        "description": "Filters allow data objects to specify test criteria which allows their use. Filters can be defined by a single object of type (Filter Test), an array of tests, collection groups, or a combination of these objects.",
                        "$ref": "#/definitions/1088251937"
                    }
                },
                {
                    "type": "object",
                    "properties": {
                        "AND": {
                            "description": "Evaluates all tests in the group, all must pass in order for the group to pass.",
                            "$ref": "#/definitions/1088251937"
                        },
                        "NOT": {
                            "description": "Evaluates all tests in the group, all must fail in order for the group to pass.",
                            "$ref": "#/definitions/1088251937"
                        },
                        "OR": {
                            "description": "Evaluates tests in the group, one or more must pass in order for the group to pass.",
                            "$ref": "#/definitions/1088251937"
                        },
                        "all": {
                            "description": "Evaluates all tests in the group, all must pass in order for the group to pass.",
                            "$ref": "#/definitions/1088251937"
                        },
                        "all_of": {
                            "description": "Evaluates all tests in the group, all must pass in order for the group to pass.",
                            "$ref": "#/definitions/1088251937"
                        },
                        "any": {
                            "description": "Evaluates tests in the group, one or more must pass in order for the group to pass.",
                            "$ref": "#/definitions/1088251937"
                        },
                        "any_of": {
                            "description": "Evaluates tests in the group, one or more must pass in order for the group to pass.",
                            "$ref": "#/definitions/1088251937"
                        },
                        "none_of": {
                            "description": "Evaluates all tests in the group, all must fail in order for the group to pass.",
                            "$ref": "#/definitions/1088251937"
                        }
                    }
                }
            ]
        },
        "3738829565": {
            "title": "Trade",
            "type": "object",
            "properties": {
                "gives": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/1093643626"
                    },
                    "minItems": 1
                },
                "max_uses": {
                    "type": "integer",
                    "default": 7
                },
                "reward_exp": {
                    "type": "boolean",
                    "default": true
                },
                "trader_exp": {
                    "type": "integer",
                    "default": 1,
                    "minimum": 0.0
                },
                "wants": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/1093643626"
                    },
                    "minItems": 1
                },
                "weight": {
                    "type": "integer",
                    "default": 1,
                    "minimum": 1.0
                }
            },
            "required": [
                "gives",
                "wants"
            ]
        },
        "56017534": {
            "title": "TradeItem",
            "type": "object",
            "properties": {
                "filters": {
                    "description": "Filters allow data objects to specify test criteria which allows their use. Filters can be defined by a single object of type (Filter Test), an array of tests, collection groups, or a combination of these objects.",
                    "default": {
                        "OR": null,
                        "all": null,
                        "all_of": null,
                        "AND": null,
                        "any_of": null,
                        "none_of": null,
                        "any": null,
                        "NOT": null
                    },
                    "$ref": "#/definitions/1088251937"
                },
                "functions": {
                    "type": "array",
                    "items": {
                        "description": "Dynamic value"
                    }
                },
                "item": {
                    "$ref": "#/definitions/3470474886"
                },
                "price_multiplier": {
                    "type": "number",
                    "default": 0.0
                },
                "quantity": {
                    "default": {
                        "min": 1,
                        "max": 1
                    },
                    "$ref": "#/definitions/2298823339",
                    "x-runtime-constraint-description": "Check that the limits imposed on the range (minimum, maximum and maximum distance between values) are respected"
                }
            },
            "required": [
                "item"
            ]
        },
        "4150989894": {
            "title": "Filter Test",
            "type": "object",
            "properties": {
                "domain": {
                    "description": "The domain the test should be performed in.",
                    "oneOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "integer"
                        },
                        {
                            "type": "number"
                        },
                        {
                            "type": "string"
                        }
                    ]
                },
                "operator": {
                    "description": "The comparison to apply with 'value'.",
                    "oneOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "integer"
                        },
                        {
                            "type": "number"
                        },
                        {
                            "type": "string"
                        }
                    ]
                },
                "subject": {
                    "description": "The subject of this filter test.",
                    "oneOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "integer"
                        },
                        {
                            "type": "number"
                        },
                        {
                            "type": "string"
                        }
                    ]
                },
                "test": {
                    "description": "The name of the test to apply.",
                    "type": "string"
                },
                "value": {
                    "description": "The value being compared with the test.",
                    "oneOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "integer"
                        },
                        {
                            "type": "number"
                        },
                        {
                            "type": "string"
                        }
                    ]
                }
            },
            "required": [
                "test"
            ]
        },
        "3470474886": {
            "title": "Reference",
            "type": "string"
        },
        "2298823339": {
            "title": "Trade Quantity",
            "oneOf": [
                {
                    "type": "integer",
                    "minimum": 1.0
                },
                {
                    "type": "object",
                    "properties": {
                        "max": {
                            "type": "integer",
                            "default": 1,
                            "minimum": 1.0
                        },
                        "min": {
                            "type": "integer",
                            "default": 1,
                            "minimum": 1.0
                        }
                    }
                }
            ]
        }
    },
    "title": "Trade Table",
    "type": "array",
    "items": {
        "$ref": "#/definitions/943617905"
    }
}