code: func (m *Machine) Validate() error {
  	if m.MachineName == "" {
  		return fmt.Errorf("a machine name is required")
  	}
  
  	if m.MachineVersion == "" {
  		return fmt.Errorf("a machine version is required")
  	}
  
  	if m.InitialState == "" {
  		return fmt.Errorf("an initial state is required")
  	}
  
  	if len(m.Transitions) == 0 {
  		return fmt.Errorf("no transitions defined")
  	}
  
  	if len(m.WatcherDefs) == 0 {
  		return fmt.Errorf("no watchers defined")
  	}
  
  	for _, w := range m.Watchers() {
  		err := w.ParseAnnounceInterval()
  		if err != nil {
  			return err
  		}
  	}
  
  	return nil
  }
docs: // Validate performs basic validation on the machine settings