anchor.diff:    Future load() {
       _elevatedPlugins.clear();
       var requirements = <String, List<String>>{};
  +    var conflicts = <String, List<String>>{};
       var pluginNames = <String>[];
       var pluginsDirectory = new Directory("plugins");
       if (!pluginsDirectory.existsSync()) pluginsDirectory.createSync();
  
positive.code:         loaders.add(new PluginLoadHelper()..name = pluginName..loader = loader);
  
          requirements[pluginName] = new List<String>.from(info['dependencies'] == null ? [] : info['dependencies']);
  
          pluginNames.add(pluginName);
        });
  
  
negative.code:             print("[Plugin Manager] Failed to resolve requirements for plugin '${name}'");
              var noun = requires.length == 1 ? "it" : "they";
              var verb = requires.length == 1 ? "was" : "were";
              print("[Plugin Manager] '${name}' requires '${requires.join(", ")}', but ${noun} ${verb} not found.");
              exit(1);
            }
            
            List<String> conflicting = conflicts[name];
            conflicting.removeWhere((it) => !pluginNames.contains(it));
            
            if (conflicting.isNotEmpty) {
              print("[Plugin Manager] Failed to resolve conflicts for plugin '${name}'");
              var noun = requires.length == 1 ? "it" : "they";
              var verb = requires.length == 1 ? "is" : "are";
              print("[Plugin Manager] '${name}' conflicts with '${requires.join(", ")}', but ${noun} ${verb} installed.");
              exit(1);
            }
          }
  