code: func execChains(event *Event) {
  	for _, c := range chains {
  		if c.Event.Name != event.Name || c.Event.Bee != event.Bee {
  			continue
  		}
  
  		m := make(map[string]interface{})
  		for _, opt := range event.Options {
  			m[opt.Name] = opt.Value
  		}
  		ctx.FillMap(m)
  
  		failed := false
  		log.Println("Executing chain:", c.Name, "-", c.Description)
  		for _, el := range c.Filters {
  			if execFilter(el, m) {
  				log.Println("\t\tPassed filter!")
  			} else {
  				log.Println("\t\tDid not pass filter!")
  				failed = true
  				break
  			}
  		}
  		if failed {
  			continue
  		}
  
  		for _, el := range c.Actions {
  			action := GetAction(el)
  			if action == nil {
  				log.Println("\t\tERROR: Unknown action referenced!")
  				continue
  			}
  			execAction(*action, m)
  		}
  	}
  }
docs: // execChains executes chains for an event we received