code: func Write(w io.Writer, bundle Bundle) error {
  	gw := gzip.NewWriter(w)
  	tw := tar.NewWriter(gw)
  
  	var buf bytes.Buffer
  
  	if err := json.NewEncoder(&buf).Encode(bundle.Data); err != nil {
  		return err
  	}
  
  	if err := writeFile(tw, "data.json", buf.Bytes()); err != nil {
  		return err
  	}
  
  	for _, module := range bundle.Modules {
  		if err := writeFile(tw, module.Path, module.Raw); err != nil {
  			return err
  		}
  	}
  
  	if err := writeManifest(tw, bundle); err != nil {
  		return err
  	}
  
  	if err := tw.Close(); err != nil {
  		return err
  	}
  
  	return gw.Close()
  }
docs: // Write serializes the Bundle and writes it to w.