anchor.diff:  import 'worker.dart';
   
   class VizRoot {
  -  final VizPackage root;
  +  final String rootPackageName;
     final Map<String, VizPackage> packages;
   
  -  VizRoot._(this.root, Map<String, VizPackage> packages)
  -      : packages = UnmodifiableMapView(packages);
  +  VizRoot._(this.rootPackageName, Map<String, VizPackage> packages)
  +      : assert(packages.containsKey(rootPackageName)),
  +        packages = UnmodifiableMapView(packages);
  +
  +  VizPackage get root => packages[rootPackageName];
   
     static Future<VizRoot> forDirectory(
       Service service,
  
positive.code:     Iterable<String> ignorePackages,
      bool directDependencies = false,
    }) async {
      var root = await VizPackage.forDirectory(service, path);
  
      final packages = await Worker(service).getReferencedPackages(
        path,
  
negative.code:       directDependencies,
      );
  
      final value = VizRoot._(rootPubspec.name, packages).._update();
  
      if (flagOutdated) {
        for (var dep in _allDeps(value, ignorePackages)) {
  