code: func getValue(val interface{}, context string) string {
  	keys := strings.Split(context, ".")
  
  	if keys[0] == "(root)" {
  		keys = keys[1:]
  	}
  
  	for i, k := range keys {
  		switch typedVal := (val).(type) {
  		case string:
  			return typedVal
  		case []interface{}:
  			if index, err := strconv.Atoi(k); err == nil {
  				val = typedVal[index]
  			}
  		case RawServiceMap:
  			val = typedVal[k]
  		case RawService:
  			val = typedVal[k]
  		case map[interface{}]interface{}:
  			val = typedVal[k]
  		}
  
  		if i == len(keys)-1 {
  			return fmt.Sprint(val)
  		}
  	}
  
  	return ""
  }
docs: // Gets the value in a service map at a given error context