2344 lines
		
	
	
		
			No EOL
		
	
	
		
			58 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			2344 lines
		
	
	
		
			No EOL
		
	
	
		
			58 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| {
 | ||
|   "name": "40k9e",
 | ||
|   "game": "Warhammer 40,000",
 | ||
|   "genre": "sci-fi",
 | ||
|   "publisher": "Games Workshop",
 | ||
|   "url": "https://warhammer40000.com/",
 | ||
|   "notes": "This manifest is provided for the purposes of testing Rosterizer and is not intended for distribution.",
 | ||
|   "manifest": {
 | ||
|     "assetTaxonomy": {
 | ||
|       "Detachment": {
 | ||
|         "stats": {
 | ||
|           "HQ": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "icons": [
 | ||
|               "crowned-skull"
 | ||
|             ],
 | ||
|             "statOrder": 1,
 | ||
|             "visibility": "active",
 | ||
|             "tracked": true
 | ||
|           },
 | ||
|           "Troops": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "icons": [
 | ||
|               "triangle-target"
 | ||
|             ],
 | ||
|             "statOrder": 3,
 | ||
|             "visibility": "active",
 | ||
|             "tracked": true
 | ||
|           },
 | ||
|           "Elites": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "icons": [
 | ||
|               "pirate-flag"
 | ||
|             ],
 | ||
|             "statOrder": 5,
 | ||
|             "visibility": "active",
 | ||
|             "tracked": true
 | ||
|           },
 | ||
|           "Dedicated Transport": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "icons": [
 | ||
|               "arrow-dunk"
 | ||
|             ],
 | ||
|             "statOrder": 13,
 | ||
|             "visibility": "active",
 | ||
|             "tracked": true
 | ||
|           },
 | ||
|           "Fast Attack": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "icons": [
 | ||
|               "power-lightning"
 | ||
|             ],
 | ||
|             "statOrder": 7,
 | ||
|             "visibility": "active",
 | ||
|             "tracked": true
 | ||
|           },
 | ||
|           "Heavy Support": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "icons": [
 | ||
|               "mine-explosion"
 | ||
|             ],
 | ||
|             "statOrder": 9,
 | ||
|             "visibility": "active",
 | ||
|             "tracked": true
 | ||
|           },
 | ||
|           "Flyer": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "icons": [
 | ||
|               "bat-blade"
 | ||
|             ],
 | ||
|             "statOrder": 11,
 | ||
|             "visibility": "active",
 | ||
|             "tracked": true
 | ||
|           },
 | ||
|           "Command Cost": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "statOrder": -1,
 | ||
|             "visibility": "always",
 | ||
|             "tracked": true
 | ||
|           }
 | ||
|         },
 | ||
|         "rules": {
 | ||
|           "1 Dedicated Transport allowed per INFANTRY": {
 | ||
|             "evals": [],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "order": 5,
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Dedicated Transport",
 | ||
|                     "max"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "tally",
 | ||
|                   "INFANTRY"
 | ||
|                 ],
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           }
 | ||
|         },
 | ||
|         "aspects": {
 | ||
|           "Group Includes": true,
 | ||
|           "Group Traits": true
 | ||
|         },
 | ||
|         "allowed": {
 | ||
|           "classifications": [
 | ||
|             "Unit"
 | ||
|           ]
 | ||
|         }
 | ||
|       },
 | ||
|       "Unit": {
 | ||
|         "stats": {
 | ||
|           "Points": {
 | ||
|             "value": 0,
 | ||
|             "format": "{v}",
 | ||
|             "group": "Cost",
 | ||
|             "groupOrder": -1,
 | ||
|             "tracked": true,
 | ||
|             "statType": "numeric"
 | ||
|           },
 | ||
|           "model": {
 | ||
|             "value": null,
 | ||
|             "statType": "term",
 | ||
|             "visibility": "hidden"
 | ||
|           },
 | ||
|           "Power Level": {
 | ||
|             "statType": "numeric",
 | ||
|             "format": "{v}",
 | ||
|             "value": 0,
 | ||
|             "group": "Cost",
 | ||
|             "groupOrder": -1,
 | ||
|             "visibility": "always",
 | ||
|             "tracked": true
 | ||
|           },
 | ||
|           "power1": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "visibility": "hidden"
 | ||
|           },
 | ||
|           "power3": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "visibility": "hidden"
 | ||
|           },
 | ||
|           "power2": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "visibility": "hidden"
 | ||
|           },
 | ||
|           "power4": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "visibility": "hidden"
 | ||
|           },
 | ||
|           "poweri": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "visibility": "hidden"
 | ||
|           },
 | ||
|           "Crusade Pts": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": 0,
 | ||
|             "visibility": "normal",
 | ||
|             "dynamic": true,
 | ||
|             "tracked": false
 | ||
|           },
 | ||
|           "Experience": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": 0,
 | ||
|             "visibility": "normal",
 | ||
|             "dynamic": true,
 | ||
|             "tracked": false
 | ||
|           },
 | ||
|           "Marked for Greatness": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": 0,
 | ||
|             "visibility": "active",
 | ||
|             "dynamic": true,
 | ||
|             "tracked": false
 | ||
|           }
 | ||
|         },
 | ||
|         "keywords": {
 | ||
|           "Tags": [
 | ||
|             "Unit"
 | ||
|           ],
 | ||
|           "Faction": []
 | ||
|         },
 | ||
|         "rules": {
 | ||
|           "use points": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{roster}",
 | ||
|                     "stats",
 | ||
|                     "Mode",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "value": "Points",
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Power Level",
 | ||
|                     "visibility"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": "hidden",
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "use power level": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{roster}",
 | ||
|                     "stats",
 | ||
|                     "Mode",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "value": "Power Level",
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Points",
 | ||
|                     "visibility"
 | ||
|                   ],
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "assets",
 | ||
|                     "classification",
 | ||
|                     "Model",
 | ||
|                     "stats",
 | ||
|                     "Points",
 | ||
|                     "visibility"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": "hidden",
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "adjust power": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "tally",
 | ||
|                     "Model"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "min": [
 | ||
|                   "{self}",
 | ||
|                   "stats",
 | ||
|                   "power1",
 | ||
|                   "value"
 | ||
|                 ],
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "tally",
 | ||
|                     "Model"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "min": [
 | ||
|                   "{self}",
 | ||
|                   "stats",
 | ||
|                   "power2",
 | ||
|                   "value"
 | ||
|                 ],
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "tally",
 | ||
|                     "Model"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "min": [
 | ||
|                   "{self}",
 | ||
|                   "stats",
 | ||
|                   "power3",
 | ||
|                   "value"
 | ||
|                 ],
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "tally",
 | ||
|                     "Model"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "min": [
 | ||
|                   "{self}",
 | ||
|                   "stats",
 | ||
|                   "power4",
 | ||
|                   "value"
 | ||
|                 ],
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "rules",
 | ||
|                     "adjust power",
 | ||
|                     "evals",
 | ||
|                     "0",
 | ||
|                     "result",
 | ||
|                     "truthy"
 | ||
|                   ],
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "rules",
 | ||
|                     "adjust power",
 | ||
|                     "evals",
 | ||
|                     "1",
 | ||
|                     "result",
 | ||
|                     "truthy"
 | ||
|                   ],
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "rules",
 | ||
|                     "adjust power",
 | ||
|                     "evals",
 | ||
|                     "2",
 | ||
|                     "result",
 | ||
|                     "truthy"
 | ||
|                   ],
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "rules",
 | ||
|                     "adjust power",
 | ||
|                     "evals",
 | ||
|                     "3",
 | ||
|                     "result",
 | ||
|                     "truthy"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "operator": "SUM",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "AND",
 | ||
|             "order": 13,
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Power Level",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "modify",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "stats",
 | ||
|                   "poweri",
 | ||
|                   "value"
 | ||
|                 ],
 | ||
|                 "iterations": [
 | ||
|                   "{self}",
 | ||
|                   "rules",
 | ||
|                   "adjust power",
 | ||
|                   "evals",
 | ||
|                   "4",
 | ||
|                   "result",
 | ||
|                   "integer"
 | ||
|                 ]
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "Incorrect number of models.": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "designation"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "model",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "assets",
 | ||
|                     "item",
 | ||
|                     "{1string}",
 | ||
|                     "quantity"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "max": [
 | ||
|                   "{self}",
 | ||
|                   "stats",
 | ||
|                   "{0string}",
 | ||
|                   "max"
 | ||
|                 ],
 | ||
|                 "min": [
 | ||
|                   "{self}",
 | ||
|                   "stats",
 | ||
|                   "{0string}",
 | ||
|                   "min"
 | ||
|                 ],
 | ||
|                 "operator": "SUM",
 | ||
|                 "not": false
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "error",
 | ||
|             "evaluate": "OR",
 | ||
|             "order": 12
 | ||
|           },
 | ||
|           "automagical tracking bounds": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "designation"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "note": "this is currently non-functional pending refactoring of findTargets"
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "model",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "assets",
 | ||
|                     "item",
 | ||
|                     "{1string}",
 | ||
|                     "designation"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "{2string}",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": 1000,
 | ||
|                 "iterations": 1
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "{2string}",
 | ||
|                     "tracked"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": true,
 | ||
|                 "iterations": 1
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "{2string}",
 | ||
|                     "min"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "stats",
 | ||
|                   "{0string}",
 | ||
|                   "min"
 | ||
|                 ],
 | ||
|                 "iterations": 1
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "{2string}",
 | ||
|                     "max"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "stats",
 | ||
|                   "{0string}",
 | ||
|                   "max"
 | ||
|                 ],
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "1 quantity per model": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "designation"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false,
 | ||
|                 "note": "Checking my name so i know the correct statName to look at for qty."
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "model",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": true,
 | ||
|                 "note": "Storing the itemKey of the model we want to track"
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "assets",
 | ||
|                     "item",
 | ||
|                     "{1string}",
 | ||
|                     "quantity"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "operator": "SUM",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false,
 | ||
|                 "note": "Isolate quantity of modified models",
 | ||
|                 "equation": {
 | ||
|                   "operator": "T-O",
 | ||
|                   "value": [
 | ||
|                     "{self}",
 | ||
|                     "traits",
 | ||
|                     "item",
 | ||
|                     "{1string}",
 | ||
|                     "quantity"
 | ||
|                   ]
 | ||
|                 }
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "{0string}",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false,
 | ||
|                 "note": "Determine new qty of trait",
 | ||
|                 "equation": {
 | ||
|                   "operator": "T-O",
 | ||
|                   "value": [
 | ||
|                     "{self}",
 | ||
|                     "rules",
 | ||
|                     "1 quantity per model",
 | ||
|                     "evals",
 | ||
|                     "2",
 | ||
|                     "result",
 | ||
|                     "integer"
 | ||
|                   ]
 | ||
|                 }
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "order": 11,
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "traits",
 | ||
|                     "item",
 | ||
|                     "{1string}",
 | ||
|                     "quantity"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "rules",
 | ||
|                   "1 quantity per model",
 | ||
|                   "evals",
 | ||
|                   "3",
 | ||
|                   "result",
 | ||
|                   "integer"
 | ||
|                 ],
 | ||
|                 "iterations": 1
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "allowed",
 | ||
|                     "items"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "add",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "stats",
 | ||
|                   "model",
 | ||
|                   "value"
 | ||
|                 ],
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "warlordTrait": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "keywords",
 | ||
|                     "Keywords"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "value": "Character",
 | ||
|                 "contains": true,
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": true
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "AND",
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "allowed",
 | ||
|                     "classifications"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "add",
 | ||
|                 "value": "Warlord Trait",
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "Error in this Unit’s text": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "text"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "value": "ERROR",
 | ||
|                 "contains": true,
 | ||
|                 "operator": "AND",
 | ||
|                 "not": true,
 | ||
|                 "actionable": true
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "error",
 | ||
|             "evaluate": "AND"
 | ||
|           }
 | ||
|         },
 | ||
|         "aspects": {
 | ||
|           "Type": "game piece",
 | ||
|           "Lock Qty": true,
 | ||
|           "Rename": true
 | ||
|         }
 | ||
|       },
 | ||
|       "Statline": {
 | ||
|         "stats": {
 | ||
|           "A": {
 | ||
|             "value": "0",
 | ||
|             "statOrder": 7,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "term",
 | ||
|             "visibility": "always"
 | ||
|           },
 | ||
|           "BS": {
 | ||
|             "format": "{v}+",
 | ||
|             "value": 0,
 | ||
|             "statOrder": 3,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "always"
 | ||
|           },
 | ||
|           "Ld": {
 | ||
|             "value": 0,
 | ||
|             "statOrder": 8,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "always"
 | ||
|           },
 | ||
|           "S": {
 | ||
|             "value": 0,
 | ||
|             "statOrder": 4,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "always"
 | ||
|           },
 | ||
|           "Sv": {
 | ||
|             "format": "{v}+",
 | ||
|             "value": 0,
 | ||
|             "statOrder": 9,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "always"
 | ||
|           },
 | ||
|           "T": {
 | ||
|             "value": 0,
 | ||
|             "statOrder": 5,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "always"
 | ||
|           },
 | ||
|           "W": {
 | ||
|             "value": 0,
 | ||
|             "statOrder": 6,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "always"
 | ||
|           },
 | ||
|           "WS": {
 | ||
|             "format": "{v}+",
 | ||
|             "value": 0,
 | ||
|             "statOrder": 2,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "always"
 | ||
|           },
 | ||
|           "Base": {
 | ||
|             "statType": "term",
 | ||
|             "value": null,
 | ||
|             "visibility": "active"
 | ||
|           },
 | ||
|           "M": {
 | ||
|             "statType": "term",
 | ||
|             "format": "{t}″",
 | ||
|             "value": null,
 | ||
|             "statOrder": 1,
 | ||
|             "group": "Stats",
 | ||
|             "visibility": "always"
 | ||
|           }
 | ||
|         },
 | ||
|         "rules": {
 | ||
|           "remove tally": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "designation"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "order": 1,
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "tally",
 | ||
|                     "{0string}"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "modify",
 | ||
|                 "value": -1,
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "Model": {
 | ||
|         "stats": {
 | ||
|           "Points": {
 | ||
|             "value": null,
 | ||
|             "format": "{v}",
 | ||
|             "group": "Cost",
 | ||
|             "groupOrder": -1,
 | ||
|             "tracked": true,
 | ||
|             "statType": "numeric"
 | ||
|           },
 | ||
|           "A": {
 | ||
|             "value": "0",
 | ||
|             "statOrder": 7,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "term",
 | ||
|             "visibility": "normal"
 | ||
|           },
 | ||
|           "BS": {
 | ||
|             "format": "{v}+",
 | ||
|             "value": 0,
 | ||
|             "statOrder": 3,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "normal"
 | ||
|           },
 | ||
|           "Ld": {
 | ||
|             "value": 0,
 | ||
|             "statOrder": 8,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "normal"
 | ||
|           },
 | ||
|           "S": {
 | ||
|             "value": 0,
 | ||
|             "statOrder": 4,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "normal"
 | ||
|           },
 | ||
|           "Sv": {
 | ||
|             "format": "{v}+",
 | ||
|             "value": 0,
 | ||
|             "statOrder": 9,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "normal"
 | ||
|           },
 | ||
|           "T": {
 | ||
|             "value": 0,
 | ||
|             "statOrder": 5,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "normal"
 | ||
|           },
 | ||
|           "W": {
 | ||
|             "value": 0,
 | ||
|             "statOrder": 6,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "normal"
 | ||
|           },
 | ||
|           "WS": {
 | ||
|             "format": "{v}+",
 | ||
|             "value": 0,
 | ||
|             "statOrder": 2,
 | ||
|             "group": "Stats",
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "normal"
 | ||
|           },
 | ||
|           "Base": {
 | ||
|             "statType": "term",
 | ||
|             "value": null,
 | ||
|             "visibility": "active"
 | ||
|           },
 | ||
|           "M": {
 | ||
|             "statType": "term",
 | ||
|             "format": "{t}″",
 | ||
|             "value": null,
 | ||
|             "statOrder": 1,
 | ||
|             "group": "Stats",
 | ||
|             "visibility": "normal"
 | ||
|           }
 | ||
|         },
 | ||
|         "aspects": {
 | ||
|           "Type": "game piece"
 | ||
|         }
 | ||
|       },
 | ||
|       "HQ": {
 | ||
|         "templateClass": "Unit",
 | ||
|         "text": ""
 | ||
|       },
 | ||
|       "Troops": {
 | ||
|         "templateClass": "Unit"
 | ||
|       },
 | ||
|       "Elites": {
 | ||
|         "templateClass": "Unit"
 | ||
|       },
 | ||
|       "Fast Attack": {
 | ||
|         "templateClass": "Unit"
 | ||
|       },
 | ||
|       "Flyers": {
 | ||
|         "templateClass": "Unit"
 | ||
|       },
 | ||
|       "Heavy Support": {
 | ||
|         "templateClass": "Unit"
 | ||
|       },
 | ||
|       "Fortifications": {
 | ||
|         "templateClass": "Unit"
 | ||
|       },
 | ||
|       "Dedicated Transport": {
 | ||
|         "templateClass": "Unit"
 | ||
|       },
 | ||
|       "Lords of War": {
 | ||
|         "templateClass": "Unit"
 | ||
|       },
 | ||
|       "Weapon": {
 | ||
|         "stats": {
 | ||
|           "AP": {
 | ||
|             "statOrder": 4,
 | ||
|             "visibility": "always",
 | ||
|             "statType": "term"
 | ||
|           },
 | ||
|           "D": {
 | ||
|             "statOrder": 5,
 | ||
|             "visibility": "always",
 | ||
|             "statType": "term"
 | ||
|           },
 | ||
|           "Points": {
 | ||
|             "value": null,
 | ||
|             "format": "+{v}",
 | ||
|             "group": "Cost",
 | ||
|             "groupOrder": -1,
 | ||
|             "tracked": true,
 | ||
|             "statType": "numeric"
 | ||
|           },
 | ||
|           "S": {
 | ||
|             "value": null,
 | ||
|             "statOrder": 3,
 | ||
|             "visibility": "always",
 | ||
|             "statType": "term"
 | ||
|           },
 | ||
|           "Type": {
 | ||
|             "value": null,
 | ||
|             "statOrder": 2,
 | ||
|             "visibility": "always",
 | ||
|             "statType": "term"
 | ||
|           },
 | ||
|           "Range": {
 | ||
|             "statType": "numeric",
 | ||
|             "statOrder": 1,
 | ||
|             "visibility": "always"
 | ||
|           }
 | ||
|         },
 | ||
|         "aspects": {
 | ||
|           "Visibility": "always"
 | ||
|         }
 | ||
|       },
 | ||
|       "Wargear": {
 | ||
|         "stats": {
 | ||
|           "keyword?": {
 | ||
|             "statType": "rank",
 | ||
|             "value": "0",
 | ||
|             "ranks": {
 | ||
|               "0": {
 | ||
|                 "order": 0
 | ||
|               },
 | ||
|               "1": {
 | ||
|                 "order": 1
 | ||
|               }
 | ||
|             },
 | ||
|             "visibility": "hidden"
 | ||
|           }
 | ||
|         },
 | ||
|         "rules": {
 | ||
|           "add keyword": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{parent}",
 | ||
|                     "{parent}",
 | ||
|                     "keywords",
 | ||
|                     "General"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "designation"
 | ||
|                 ],
 | ||
|                 "contains": true,
 | ||
|                 "operator": "AND",
 | ||
|                 "not": true
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "keyword?",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "value": "1",
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "AND",
 | ||
|             "order": 12,
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{parent}",
 | ||
|                     "{parent}",
 | ||
|                     "keywords",
 | ||
|                     "General"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "add",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "designation"
 | ||
|                 ],
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           }
 | ||
|         },
 | ||
|         "aspects": {
 | ||
|           "Visibility": "always"
 | ||
|         }
 | ||
|       },
 | ||
|       "Ability": {
 | ||
|         "aspects": {
 | ||
|           "Visibility": "active"
 | ||
|         },
 | ||
|         "rules": {
 | ||
|           "Error in this Ability’s text": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "text"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "value": "ERROR",
 | ||
|                 "contains": true,
 | ||
|                 "operator": "AND",
 | ||
|                 "not": true,
 | ||
|                 "actionable": true
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "error",
 | ||
|             "evaluate": "AND"
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "Order of Battle": {
 | ||
|         "allowed": {
 | ||
|           "classifications": [
 | ||
|             "Unit"
 | ||
|           ]
 | ||
|         },
 | ||
|         "aspects": {
 | ||
|           "Group Includes": true
 | ||
|         },
 | ||
|         "rules": {
 | ||
|           "hide enclosed assets": {
 | ||
|             "evals": [],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "assets",
 | ||
|                     "templateClass",
 | ||
|                     "Unit",
 | ||
|                     "aspects",
 | ||
|                     "Visibility"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": "active",
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "noPoints": {
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "AND",
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "tracked",
 | ||
|                     "Points"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": 0,
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "supplyUsedLimit": {
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "AND",
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Power Level",
 | ||
|                     "max"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "stats",
 | ||
|                   "Supply Limit",
 | ||
|                   "value"
 | ||
|                 ],
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           }
 | ||
|         },
 | ||
|         "stats": {
 | ||
|           "Supply Limit": {
 | ||
|             "statType": "numeric",
 | ||
|             "increment": {
 | ||
|               "value": 1
 | ||
|             },
 | ||
|             "value": 50,
 | ||
|             "visibility": "normal",
 | ||
|             "dynamic": true,
 | ||
|             "tracked": false
 | ||
|           },
 | ||
|           "Power Level": {
 | ||
|             "statType": "numeric",
 | ||
|             "label": "Supply Used",
 | ||
|             "value": 0,
 | ||
|             "visibility": "normal",
 | ||
|             "dynamic": false,
 | ||
|             "tracked": true
 | ||
|           },
 | ||
|           "Battle Tally": {
 | ||
|             "value": 0,
 | ||
|             "statType": "numeric"
 | ||
|           },
 | ||
|           "Battles Won": {
 | ||
|             "value": 0,
 | ||
|             "statType": "numeric"
 | ||
|           },
 | ||
|           "Requisition Points": {
 | ||
|             "value": 0,
 | ||
|             "statType": "numeric"
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "Psychic Power": {},
 | ||
|       "Warlord Trait": {
 | ||
|         "stats": {
 | ||
|           "Discipline": {
 | ||
|             "statType": "term",
 | ||
|             "visibility": "active",
 | ||
|             "dynamic": false,
 | ||
|             "tracked": false
 | ||
|           }
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "assetCatalog": {
 | ||
|       "Detachment§Auxiliary Support Detachment": {
 | ||
|         "stats": {
 | ||
|           "Command Cost": {
 | ||
|             "value": 2
 | ||
|           },
 | ||
|           "Unit": {
 | ||
|             "value": 0,
 | ||
|             "max": 1
 | ||
|           },
 | ||
|           "Hive Fleet": {
 | ||
|             "value": "-"
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "Detachment§Battalion Detachment": {
 | ||
|         "stats": {
 | ||
|           "Command Cost": {
 | ||
|             "value": 3
 | ||
|           },
 | ||
|           "Fast Attack": {
 | ||
|             "value": 0,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Heavy Support": {
 | ||
|             "value": 0,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Flyer": {
 | ||
|             "value": 0,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "HQ": {
 | ||
|             "value": 0,
 | ||
|             "min": 2,
 | ||
|             "max": 3
 | ||
|           },
 | ||
|           "Troops": {
 | ||
|             "value": 0,
 | ||
|             "min": 3,
 | ||
|             "max": 6
 | ||
|           },
 | ||
|           "Elites": {
 | ||
|             "value": 0,
 | ||
|             "max": 6
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "Detachment§Brigade Detachment": {
 | ||
|         "stats": {
 | ||
|           "Command Cost": {
 | ||
|             "value": 4
 | ||
|           },
 | ||
|           "Flyer": {
 | ||
|             "value": 0,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "HQ": {
 | ||
|             "value": 0,
 | ||
|             "min": 3,
 | ||
|             "max": 5
 | ||
|           },
 | ||
|           "Troops": {
 | ||
|             "value": 0,
 | ||
|             "min": 6,
 | ||
|             "max": 12
 | ||
|           },
 | ||
|           "Elites": {
 | ||
|             "value": 0,
 | ||
|             "min": 3,
 | ||
|             "max": 8
 | ||
|           },
 | ||
|           "Fast Attack": {
 | ||
|             "value": 0,
 | ||
|             "min": 3,
 | ||
|             "max": 5
 | ||
|           },
 | ||
|           "Heavy Support": {
 | ||
|             "value": 0,
 | ||
|             "min": 3,
 | ||
|             "max": 5
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "Detachment§Fortification Network": {
 | ||
|         "stats": {
 | ||
|           "Command Cost": {
 | ||
|             "value": 1
 | ||
|           },
 | ||
|           "Fortification": {
 | ||
|             "value": 0,
 | ||
|             "min": 1,
 | ||
|             "max": 3
 | ||
|           }
 | ||
|         },
 | ||
|         "allowed": {
 | ||
|           "classifications": [
 | ||
|             "Fortifications"
 | ||
|           ]
 | ||
|         },
 | ||
|         "rules": {}
 | ||
|       },
 | ||
|       "Detachment§Outrider Detachment": {
 | ||
|         "stats": {
 | ||
|           "Command Cost": {
 | ||
|             "value": 3
 | ||
|           },
 | ||
|           "HQ": {
 | ||
|             "value": 0,
 | ||
|             "min": 1,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Flyer": {
 | ||
|             "value": 0,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Troops": {
 | ||
|             "value": 0,
 | ||
|             "max": 3
 | ||
|           },
 | ||
|           "Elites": {
 | ||
|             "value": 0,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Heavy Support": {
 | ||
|             "value": 0,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Fast Attack": {
 | ||
|             "value": 0,
 | ||
|             "min": 3,
 | ||
|             "max": 6
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "Detachment§Patrol Detachment": {
 | ||
|         "stats": {
 | ||
|           "Command Cost": {
 | ||
|             "value": 2
 | ||
|           },
 | ||
|           "HQ": {
 | ||
|             "value": 0,
 | ||
|             "min": 1,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Troops": {
 | ||
|             "value": 0,
 | ||
|             "min": 1,
 | ||
|             "max": 3
 | ||
|           },
 | ||
|           "Elites": {
 | ||
|             "value": 0,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Fast Attack": {
 | ||
|             "value": 0,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Heavy Support": {
 | ||
|             "value": 0,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Flyer": {
 | ||
|             "value": 0,
 | ||
|             "max": 2
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "Detachment§Spearhead Detachment": {
 | ||
|         "stats": {
 | ||
|           "Command Cost": {
 | ||
|             "value": 3
 | ||
|           },
 | ||
|           "HQ": {
 | ||
|             "value": 0,
 | ||
|             "min": 1,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Fast Attack": {
 | ||
|             "value": 0,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Flyer": {
 | ||
|             "value": 0,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Troops": {
 | ||
|             "value": 0,
 | ||
|             "max": 3
 | ||
|           },
 | ||
|           "Elites": {
 | ||
|             "value": 0,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Heavy Support": {
 | ||
|             "value": 0,
 | ||
|             "min": 3,
 | ||
|             "max": 6
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "Detachment§Super-Heavy Auxiliary Detachment": {
 | ||
|         "stats": {
 | ||
|           "Lord of War": {
 | ||
|             "value": 0,
 | ||
|             "min": 1,
 | ||
|             "max": 1
 | ||
|           },
 | ||
|           "Command Cost": {
 | ||
|             "value": 3
 | ||
|           }
 | ||
|         },
 | ||
|         "allowed": {
 | ||
|           "classifications": [
 | ||
|             "Lords of War"
 | ||
|           ]
 | ||
|         },
 | ||
|         "rules": {}
 | ||
|       },
 | ||
|       "Detachment§Super-Heavy Detachment": {
 | ||
|         "stats": {
 | ||
|           "Command Cost": {
 | ||
|             "statType": "rank",
 | ||
|             "ranks": {
 | ||
|               "3": {
 | ||
|                 "order": 0,
 | ||
|                 "number": 3
 | ||
|               },
 | ||
|               "6": {
 | ||
|                 "order": 1,
 | ||
|                 "number": 6
 | ||
|               }
 | ||
|             },
 | ||
|             "dynamic": true,
 | ||
|             "tracked": true,
 | ||
|             "value": "3"
 | ||
|           },
 | ||
|           "Lord of War": {
 | ||
|             "value": 0,
 | ||
|             "min": 3,
 | ||
|             "max": 5
 | ||
|           }
 | ||
|         },
 | ||
|         "allowed": {
 | ||
|           "classifications": [
 | ||
|             "Lords of War"
 | ||
|           ]
 | ||
|         },
 | ||
|         "rules": {
 | ||
|           "You can only take TITANIC units if the Command Cost is 6.": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "tally",
 | ||
|                     "TITANIC"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "min": 1,
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Command Cost",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "value": "3",
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "AND",
 | ||
|             "order": 5
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "Detachment§Supreme Command Detachment": {
 | ||
|         "stats": {
 | ||
|           "HQ": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "visibility": "hidden"
 | ||
|           },
 | ||
|           "Troops": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "visibility": "hidden"
 | ||
|           },
 | ||
|           "Elites": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "visibility": "hidden"
 | ||
|           },
 | ||
|           "Fast Attack": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "visibility": "hidden"
 | ||
|           },
 | ||
|           "Heavy Support": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "visibility": "hidden"
 | ||
|           },
 | ||
|           "Flyer": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "visibility": "hidden"
 | ||
|           },
 | ||
|           "Dedicated Transport": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "visibility": "hidden"
 | ||
|           },
 | ||
|           "Lord of War or HQ": {
 | ||
|             "value": null,
 | ||
|             "statType": "numeric",
 | ||
|             "visibility": "active",
 | ||
|             "tracked": true,
 | ||
|             "min": 1,
 | ||
|             "max": 1
 | ||
|           },
 | ||
|           "Command Cost": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "tracked": true
 | ||
|           }
 | ||
|         },
 | ||
|         "allowed": {
 | ||
|           "classifications": [
 | ||
|             "Lords of War",
 | ||
|             "HQ"
 | ||
|           ]
 | ||
|         },
 | ||
|         "rules": {
 | ||
|           "Lord of War or HQ counts": {
 | ||
|             "evals": [],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "order": 5,
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Lord of War or HQ",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "tally",
 | ||
|                   "Unit"
 | ||
|                 ],
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "Command Cost refund": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "tally",
 | ||
|                     [
 | ||
|                       "Patrol Detachment",
 | ||
|                       "Battalion Detachment",
 | ||
|                       "Brigade Detachment"
 | ||
|                     ]
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "min": 1,
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "tally",
 | ||
|                     [
 | ||
|                       "Patrol Detachment",
 | ||
|                       "Battalion Detachment",
 | ||
|                       "Brigade Detachment"
 | ||
|                     ]
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "min": 1,
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "tally",
 | ||
|                     [
 | ||
|                       "Battalion Detachment",
 | ||
|                       "Brigade Detachment"
 | ||
|                     ]
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "min": 1,
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "tally",
 | ||
|                     "Brigade Detachment"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "min": 1,
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "rules",
 | ||
|                     "Command Cost refund",
 | ||
|                     "evals",
 | ||
|                     [
 | ||
|                       "0",
 | ||
|                       "1",
 | ||
|                       "2",
 | ||
|                       "3"
 | ||
|                     ],
 | ||
|                     "result",
 | ||
|                     "truthy"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "max": -2,
 | ||
|                 "operator": "SUM",
 | ||
|                 "not": false,
 | ||
|                 "equation": {
 | ||
|                   "operator": "T*O",
 | ||
|                   "value": -1
 | ||
|                 }
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "order": 5,
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Command Cost",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "rules",
 | ||
|                   "Command Cost refund",
 | ||
|                   "evals",
 | ||
|                   "4",
 | ||
|                   "result",
 | ||
|                   "integer"
 | ||
|                 ],
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "This detachment must contain your WARLORD": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "tally",
 | ||
|                     "WARLORD"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "min": 1,
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "error",
 | ||
|             "evaluate": "OR",
 | ||
|             "order": 5
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "Detachment§Vanguard Detachment": {
 | ||
|         "stats": {
 | ||
|           "Command Cost": {
 | ||
|             "value": 3,
 | ||
|             "statType": "numeric",
 | ||
|             "statOrder": -1,
 | ||
|             "tracked": true
 | ||
|           },
 | ||
|           "HQ": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "statOrder": 1,
 | ||
|             "visibility": "active",
 | ||
|             "tracked": true,
 | ||
|             "min": 1,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Fast Attack": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "statOrder": 7,
 | ||
|             "visibility": "active",
 | ||
|             "tracked": true,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Heavy Support": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "statOrder": 9,
 | ||
|             "visibility": "active",
 | ||
|             "tracked": true,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Flyer": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": null,
 | ||
|             "statOrder": 11,
 | ||
|             "visibility": "active",
 | ||
|             "tracked": true,
 | ||
|             "max": 2
 | ||
|           },
 | ||
|           "Troops": {
 | ||
|             "value": null,
 | ||
|             "statType": "numeric",
 | ||
|             "statOrder": 3,
 | ||
|             "visibility": "active",
 | ||
|             "tracked": true,
 | ||
|             "max": 3
 | ||
|           },
 | ||
|           "Elites": {
 | ||
|             "value": null,
 | ||
|             "statType": "numeric",
 | ||
|             "statOrder": 5,
 | ||
|             "visibility": "active",
 | ||
|             "tracked": true,
 | ||
|             "min": 3,
 | ||
|             "max": 6
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "Order of Battle§Order of Battle": {},
 | ||
|       "Roster§Army": {
 | ||
|         "aspects": {
 | ||
|           "Lock Qty": true,
 | ||
|           "Unique": true,
 | ||
|           "Describe": true,
 | ||
|           "Rename": true,
 | ||
|           "Type": "conceptual",
 | ||
|           "Collapse": true
 | ||
|         },
 | ||
|         "stats": {
 | ||
|           "Detachment": {
 | ||
|             "value": 0,
 | ||
|             "label": "Detachments",
 | ||
|             "statType": "numeric",
 | ||
|             "tracked": true
 | ||
|           },
 | ||
|           "Points": {
 | ||
|             "value": 0,
 | ||
|             "statType": "numeric",
 | ||
|             "statOrder": -5,
 | ||
|             "tracked": true
 | ||
|           },
 | ||
|           "Power Level": {
 | ||
|             "value": 0,
 | ||
|             "statType": "numeric",
 | ||
|             "statOrder": -6,
 | ||
|             "tracked": true
 | ||
|           },
 | ||
|           "Mode": {
 | ||
|             "statType": "rank",
 | ||
|             "value": "Points",
 | ||
|             "ranks": {
 | ||
|               "Points": {
 | ||
|                 "order": 0
 | ||
|               },
 | ||
|               "Power Level": {
 | ||
|                 "order": 1
 | ||
|               }
 | ||
|             },
 | ||
|             "statOrder": 4,
 | ||
|             "visibility": "active",
 | ||
|             "dynamic": true
 | ||
|           },
 | ||
|           "Battle Size": {
 | ||
|             "statType": "rank",
 | ||
|             "increment": {},
 | ||
|             "value": "Strike Force",
 | ||
|             "ranks": {
 | ||
|               "-": {
 | ||
|                 "order": 0,
 | ||
|                 "format": "-"
 | ||
|               },
 | ||
|               "Combat Patrol": {
 | ||
|                 "order": 1,
 | ||
|                 "format": "Combat Patrol",
 | ||
|                 "tracking": {
 | ||
|                   "maxPowerLevel": 25,
 | ||
|                   "maxPoints": 500,
 | ||
|                   "maxDetachments": 2,
 | ||
|                   "startingCP": 999999,
 | ||
|                   "Auxiliary Support Detachment": 2
 | ||
|                 }
 | ||
|               },
 | ||
|               "Incursion": {
 | ||
|                 "order": 2,
 | ||
|                 "format": "Incursion",
 | ||
|                 "tracking": {
 | ||
|                   "maxPowerLevel": 50,
 | ||
|                   "maxPoints": 1000,
 | ||
|                   "maxDetachments": 2,
 | ||
|                   "startingCP": 6
 | ||
|                 }
 | ||
|               },
 | ||
|               "Strike Force": {
 | ||
|                 "order": 3,
 | ||
|                 "format": "Strike Force",
 | ||
|                 "tracking": {
 | ||
|                   "maxPowerLevel": 100,
 | ||
|                   "maxPoints": 2000,
 | ||
|                   "maxDetachments": 3,
 | ||
|                   "startingCP": 12
 | ||
|                 }
 | ||
|               },
 | ||
|               "Onslaught": {
 | ||
|                 "order": 4,
 | ||
|                 "format": "Onslaught",
 | ||
|                 "tracking": {
 | ||
|                   "maxPowerLevel": 150,
 | ||
|                   "maxPoints": 3000,
 | ||
|                   "maxDetachments": 4,
 | ||
|                   "startingCP": 18
 | ||
|                 }
 | ||
|               }
 | ||
|             },
 | ||
|             "statOrder": 3,
 | ||
|             "dynamic": true
 | ||
|           },
 | ||
|           "Play": {
 | ||
|             "statType": "rank",
 | ||
|             "value": "Matched",
 | ||
|             "ranks": {
 | ||
|               "Open": {
 | ||
|                 "order": 0
 | ||
|               },
 | ||
|               "Matched": {
 | ||
|                 "order": 1
 | ||
|               },
 | ||
|               "Narrative": {
 | ||
|                 "order": 2
 | ||
|               }
 | ||
|             },
 | ||
|             "statOrder": 4,
 | ||
|             "visibility": "active",
 | ||
|             "dynamic": true
 | ||
|           },
 | ||
|           "Battle-forged": {
 | ||
|             "statType": "rank",
 | ||
|             "value": 0,
 | ||
|             "ranks": {
 | ||
|               "❌": {
 | ||
|                 "order": 0,
 | ||
|                 "icons": [
 | ||
|                   "cancel"
 | ||
|                 ]
 | ||
|               },
 | ||
|               "✅": {
 | ||
|                 "order": 1,
 | ||
|                 "icons": [
 | ||
|                   "confirmed"
 | ||
|                 ]
 | ||
|               }
 | ||
|             }
 | ||
|           },
 | ||
|           "Command Points": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": 0,
 | ||
|             "statOrder": -4,
 | ||
|             "visibility": "hidden"
 | ||
|           },
 | ||
|           "Warlord Trait": {
 | ||
|             "statType": "numeric",
 | ||
|             "value": 0,
 | ||
|             "visibility": "hidden",
 | ||
|             "dynamic": false,
 | ||
|             "tracked": true,
 | ||
|             "max": 1
 | ||
|           }
 | ||
|         },
 | ||
|         "allowed": {
 | ||
|           "classifications": [
 | ||
|             "Detachment"
 | ||
|           ]
 | ||
|         },
 | ||
|         "rules": {
 | ||
|           "calculate command points": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "tracked",
 | ||
|                     "Command Cost"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false,
 | ||
|                 "actionable": false,
 | ||
|                 "equation": {
 | ||
|                   "operator": "T*O",
 | ||
|                   "value": -1
 | ||
|                 }
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Battle Size",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "value": "-",
 | ||
|                 "operator": "AND",
 | ||
|                 "not": true
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Command Points",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "tracked",
 | ||
|                   "startingCP"
 | ||
|                 ],
 | ||
|                 "iterations": 1
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Command Points",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "modify",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "rules",
 | ||
|                   "calculate command points",
 | ||
|                   "evals",
 | ||
|                   "0",
 | ||
|                   "result",
 | ||
|                   "integer"
 | ||
|                 ],
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "set maxes": {
 | ||
|             "evals": [],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "order": 1,
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Power Level",
 | ||
|                     "max"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "tracked",
 | ||
|                   "maxPowerLevel"
 | ||
|                 ],
 | ||
|                 "iterations": 1
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Points",
 | ||
|                     "max"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "tracked",
 | ||
|                   "maxPoints"
 | ||
|                 ],
 | ||
|                 "iterations": 1
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Detachment",
 | ||
|                     "max"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": [
 | ||
|                   "{self}",
 | ||
|                   "tracked",
 | ||
|                   "maxDetachments"
 | ||
|                 ],
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "use power level": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Mode",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "value": "Power Level",
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Points",
 | ||
|                     "visibility"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": "hidden",
 | ||
|                 "iterations": 1
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Points",
 | ||
|                     "max"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": null,
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "use points": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Mode",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "value": "Points",
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Power Level",
 | ||
|                     "visibility"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": "hidden",
 | ||
|                 "iterations": 1
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Power Level",
 | ||
|                     "max"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": null,
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "add order of battle": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Play",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "value": "Narrative",
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "order": 1,
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "traits"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "add",
 | ||
|                 "value": "Order of Battle§Order of Battle",
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "allow units for open": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Play",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "value": "Open",
 | ||
|                 "operator": "AND",
 | ||
|                 "not": false
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "order": 1,
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "allowed",
 | ||
|                     "classifications"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "add",
 | ||
|                 "value": "Unit",
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           },
 | ||
|           "battle-forged": {
 | ||
|             "evals": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "assets",
 | ||
|                     "templateClass",
 | ||
|                     "Unit",
 | ||
|                     "quantity"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "max": 0,
 | ||
|                 "operator": "SUM",
 | ||
|                 "not": false
 | ||
|               }
 | ||
|             ],
 | ||
|             "failState": "pass",
 | ||
|             "evaluate": "OR",
 | ||
|             "actions": [
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Battle-forged",
 | ||
|                     "value"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": "✅",
 | ||
|                 "iterations": 1
 | ||
|               },
 | ||
|               {
 | ||
|                 "paths": [
 | ||
|                   [
 | ||
|                     "{self}",
 | ||
|                     "stats",
 | ||
|                     "Command Points",
 | ||
|                     "visibility"
 | ||
|                   ]
 | ||
|                 ],
 | ||
|                 "actionType": "set",
 | ||
|                 "value": "normal",
 | ||
|                 "iterations": 1
 | ||
|               }
 | ||
|             ]
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "Psychic Power§Smite": {
 | ||
|         "text": "*Smite* has a warp charge value of 5. Add 1 to the warp charge value of this psychic power for each other attempt that has been made to *manifest* this power by a unit from your army in this phase, whether that attempt was successful or not. If manifested, the closest enemy unit within 18\" of and visible to the psyker suffers D3 *mortal wounds*. If the result of the *Psychic test* was 11 or more, that unit suffers D6 mortal wounds instead.\n\n**Warp Charge 5**: A Psychic test of 5+ is required to manifest *Smite*.\nWarp charge increases by 1 for each other attempt to manifest *Smite* made in this phase.\nIf manifested, closest visible enemy unit in 18\" suffers D3 mortal wounds.\nIf manifested with a Psychic test result of 11+, enemy instead suffers D6 mortal wounds."
 | ||
|       }
 | ||
|     },
 | ||
|     "gameModes": {},
 | ||
|     "theme": {}
 | ||
|   },
 | ||
|   "revision": "0.1.1",
 | ||
|   "dependencies": [],
 | ||
|   "wip": true
 | ||
| } | 
