anchor.diff:  
     bool get _conflictsFlutter =>
         pubspec.isFlutter && libraries.values.any((p) => !p.worksOnFlutter);
  +
  +  String get description {
  +    if (pubspec.isFlutter) {
  +      if (libraries.values.every((pi) => pi.worksOnFlutter)) {
  +        return 'flutter';
  +      }
  +      assert(hasConflict);
  +      return 'conflict';
  +    }
  +
  +    assert(pubspec == PubspecPlatform.undefined);
  +
  +    var items = libraries.values.expand((pi) => pi.descriptionSet).toSet();
  +
  +    // TODO(kevmoo) – the comma thing is a hack!
  +    if (items.length == 1) {
  +      return items.single;
  +    }
  +
  +    return "Unclear...";
  +  }
   }
   
   @JsonSerializable()
  
positive.code:       !platforms.any((p) => uses.contains(p));
  }
  
  PlatformInfo classifyPubspec(Pubspec pubspec) {
    var uses = new Set<String>();
    if (pubspec.hasFlutterKey || pubspec.dependsOnFlutterSdk) {
      uses.add(PlatformFlags.flutter);
    }
    return new PlatformInfo(uses);
  }
  
  PlatformSummary classifyPlatforms(
  
negative.code: 
      if (items.isEmpty) {
        assert(hasConflict);
        return new Set.from(['conflict']);
      }
  
      assert(!hasConflict);
  
      return (items..sort()).toSet();
    }
  
    String get description => descriptionSet.join(', ');
  
    @override
    String toString() => 'PlatformInfo: $description';
  