code: func (r *Client) GetDashboard(slug string) (Board, BoardProperties, error) {
  	var (
  		raw    []byte
  		result struct {
  			Meta  BoardProperties `json:"meta"`
  			Board Board           `json:"dashboard"`
  		}
  		code int
  		err  error
  	)
  	slug, _ = setPrefix(slug)
  	if raw, code, err = r.get(fmt.Sprintf("api/dashboards/%s", slug), nil); err != nil {
  		return Board{}, BoardProperties{}, err
  	}
  	if code != 200 {
  		return Board{}, BoardProperties{}, fmt.Errorf("HTTP error %d: returns %s", code, raw)
  	}
  	dec := json.NewDecoder(bytes.NewReader(raw))
  	dec.UseNumber()
  	if err := dec.Decode(&result); err != nil {
  		return Board{}, BoardProperties{}, fmt.Errorf("unmarshal board with meta: %s\n%s", err, raw)
  	}
  	return result.Board, result.Meta, err
  }
docs: // GetDashboard loads a dashboard from Grafana instance along with metadata for a dashboard.
  // For dashboards from a filesystem set "file/" prefix for slug. By default dashboards from
  // a database assumed. Database dashboards may have "db/" prefix or may have not, it will
  // be appended automatically.