code: func (t *proxySitesSubsys) Start(sconn *ssh.ServerConn, ch ssh.Channel, req *ssh.Request, ctx *srv.ServerContext) error {
  	log.Debugf("proxysites.start(%v)", ctx)
  	remoteSites := t.srv.proxyTun.GetSites()
  
  	// build an arary of services.Site structures:
  	retval := make([]services.Site, 0, len(remoteSites))
  	for _, s := range remoteSites {
  		retval = append(retval, services.Site{
  			Name:          s.GetName(),
  			Status:        s.GetStatus(),
  			LastConnected: s.GetLastConnected(),
  		})
  	}
  	// serialize them into JSON and write back:
  	data, err := json.Marshal(retval)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  	if _, err := ch.Write(data); err != nil {
  		return trace.Wrap(err)
  	}
  	return nil
  }
docs: // Start serves a request for "proxysites" custom SSH subsystem. It builds an array of
  // service.Site structures, and writes it serialized as JSON back to the SSH client