code: func listPods(dataDir string, include IncludeMask) ([]string, error) {
  	// uniqued due to the possibility of a pod being renamed from across directories during the list operation
  	ups := make(map[string]struct{})
  	dirs := []struct {
  		kind IncludeMask
  		path string
  	}{
  		{ // the order here is significant: embryo -> preparing -> prepared -> running -> exitedGarbage
  			kind: IncludeEmbryoDir,
  			path: embryoDir(dataDir),
  		}, {
  			kind: IncludePrepareDir,
  			path: prepareDir(dataDir),
  		}, {
  			kind: IncludePreparedDir,
  			path: preparedDir(dataDir),
  		}, {
  			kind: IncludeRunDir,
  			path: runDir(dataDir),
  		}, {
  			kind: IncludeExitedGarbageDir,
  			path: exitedGarbageDir(dataDir),
  		}, {
  			kind: IncludeGarbageDir,
  			path: garbageDir(dataDir),
  		},
  	}
  
  	for _, d := range dirs {
  		if include&d.kind != 0 {
  			ps, err := listPodsFromDir(d.path)
  			if err != nil {
  				return nil, err
  			}
  			for _, p := range ps {
  				ups[p] = struct{}{}
  			}
  		}
  	}
  
  	ps := make([]string, 0, len(ups))
  	for p := range ups {
  		ps = append(ps, p)
  	}
  
  	return ps, nil
  }
docs: // listPods returns a list of pod uuids in string form.