It has a unique identifier, the color it is currently on and the time since the last switch. - the Rule will query it for information (isReadyToSwitch) - the Commands will manipulate the object to set it's color
 /**
  * overriden method with the correct implementation for our
  * domain logic
  * {@inheritDoc}
  */
 protected function _applies()
 {
     echo $this->light->toString();
     return (bool) $this->light->isReadyToSwitch();
 }