FlexMatch rule set schema - Amazon GameLift

FlexMatch rule set schema

FlexMatch rule sets use standard schema for small-match and large-match rules. For detailed descriptions of each section, see FlexMatch rule set property definitions.

Rule set schema for small matches

The following schema documents all possible properties and allowed values for a rule set that is used to build matches of up to 40 players.

{ "name": "string", "ruleLanguageVersion": "1.0", "playerAttributes":[{ "name": "string, "type": <"string", "number", "string_list", "string_number_map">, "default": "string" }], "algorithm": { "strategy": "exhaustiveSearch", "batchingPreference": <"random", "sorted">, "sortByAttributes": [ "string" ], "expansionAgeSelection": <"newest", "oldest">, "backfillPriority": <"normal", "low", "high"> }, "teams": [{ "name": "string", "maxPlayers": number, "minPlayers": number, "quantity": integer }], "rules": [{ "type": "distance", "name": "string", "description": "string", "measurements": "string", "referenceValue": number, "maxDistance": number, "minDistance": number, "partyAggregation": <"avg", "min", "max"> },{ "type": "comparison", "name": "string", "description": "string", "measurements": "string", "referenceValue": number, "operation": <"<", "<=", "=", "!=", ">", ">=">, "partyAggregation": <"avg", "min", "max"> },{ "type": "collection", "name": "string", "description": "string", "measurements": "string", "referenceValue": number, "operation": <"intersection", "contains", "reference_intersection_count">, "maxCount": number, "minCount": number, "partyAggregation": <"union", "intersection"> },{ "type": "latency", "name": "string", "description": "string", "maxLatency": number, "maxDistance": number, "distanceReference": number, "partyAggregation": <"avg", "min", "max"> },{ "type": "distanceSort", "name": "string", "description": "string", "sortDirection": <"ascending", "descending">, "sortAttribute": "string", "mapKey": <"minValue", "maxValue">, "partyAggregation": <"avg", "min", "max"> },{ "type": "absoluteSort", "name": "string", "description": "string", "sortDirection": <"ascending", "descending">, "sortAttribute": "string", "mapKey": <"minValue", "maxValue">, "partyAggregation": <"avg", "min", "max"> },{ "type": "compound", "name": "string", "description": "string", "statement": "string" } }], "expansions": [{ "target": "string", "steps": [{ "waitTimeSeconds": number, "value": number }, { "waitTimeSeconds": number, "value": number }] }] }

Rule set schema for large matches

The following schema documents all possible properties and allowed values for a rule set that is used to build matches of greater than 40 players. If the total of maxPlayers values for all teams in the rule set exceeds 40, then FlexMatch processes match requests that use this rule set under the large-match guidelines.

{ "name": "string", "ruleLanguageVersion": "1.0", "playerAttributes":[{ "name": "string, "type": <"string", "number", "string_list", "string_number_map">, "default": "string" }], "algorithm": { "strategy": "balanced", "batchingPreference": <"largestPopulation", "fastestRegion">, "balancedAttribute": "string", "expansionAgeSelection": <"newest", "oldest">, "backfillPriority": <"normal", "low", "high"> }, "teams": [{ "name": "string", "maxPlayers": number, "minPlayers": number, "quantity": integer }], "rules": [{ "name": "string", "type": "latency", "description": "string", "maxLatency": number, "partyAggregation": <"avg", "min", "max"> }, { "name": "string", "type": "batchDistance", "batchAttribute": "string", "maxDistance": number }], "expansions": [{ "target": "string", "steps": [{ "waitTimeSeconds": number, "value": number }, { "waitTimeSeconds": number, "value": number }] }] }