Files are in JSON. The root JSON object consists of two properties: 'presets' and 'route'.
'presets' is an object with properties consisting of the names of each preset. Each of these is an object that can have any property that is in a route step, except for the 'presets' property, which will be ignored if present.
Each of these properties will be applied to any step in the route with that preset.
Any property defined in a preset will be overwritten by a property in a later preset or in the step itself, with one exception
If the property is an array and the property name is in the preset or step's 'merge' property, the step's value will be concatenated to the preset's, instead of being overwritten. This is useful if you want to define counters in a step but don't want the counters in a preset to be overwritten. The 'merge' property will always merge.
'route' is an array consisting of the steps of the route in order. Each element of the array is an object with any of the following properties:
'counter': (array of string) Array of counter instructions. A counter instruction is the name of a counter, followed by a symbol, followed by a number. Example: 'koroks+1'.
Any alphabetic counter name should work. Initiate a counter by assigning it a value.
Valid symbols are '=' for assignment, '+', '-', '*', and '/'.
Any integer should work for a value.