The Automation script language is based on YAML, and has a hierarchical schema. The basic structure looks like this:
      metadata
     | 
    contains the name of the Automation and a description | 
      
      automations
      
     | 
    defines the logic of the Automation | 
      
      starters
      
     | 
    defines the conditions which trigger the Automation | 
      
      condition
      
     | 
    defines additional conditions evaluated to start the Automation | 
      
      actions
      
     | 
    lists the actions to take | 
Conventions
Each field is a key-value pair:
<key>: <value> # <comments>
Where:
<key>is a literal keyword<value>can be:A primitive type: bool, number, string, time, etc.
A struct type: a collection of fields.
An array of the data type. For example,
- stringis an array of strings.A reference to a data value, which is defined elsewhere. For example, in
device: $tv, thetvis a variable, which refers to a device data.
<comments>are used for any additional information for the author. The script engine ignores comments-they have no bearing on the operation of the script.