anchor.diff:    }
   
     worms() {
  -    group("w", meander: 4);
  +    group("w", meander: 4, flags: "fearless");
       breed("giant earthworm", lightRed, 16, [
         attack("crawl[s] on", 8),
  -    ], speed: -2, flags: "fearless");
  +    ], speed: -2);
   
       breed("blood worm", red, 4, [
         attack("crawl[s] on", 5),
  -    ], flags: "swarm fearless");
  +    ], flags: "swarm");
   
       breed("giant cave worm", white, 36, [
         attack("crawl[s] on", 8, Element.ACID),
  -    ], speed: -2, flags: "fearless");
  -  }
  -
  -  void group(glyph, {int meander, int tracking}) {
  +    ], speed: -2);
  +  }
  +
  +  void group(glyph, {int meander, int tracking, String flags}) {
       _glyph = glyph;
       _meander = meander != null ? meander : 0;
       _tracking = tracking != null ? tracking : 10;
  +    _flags = flags;
     }
   
     Breed breed(String name, Glyph appearance(char), int health, List actions, {
  
positive.code:       chanceOf(4, "bow:4"),
        chanceOf(10, "dagger:3"),
        chanceOf(8, "body:3")
      ], meander: 2, flags: "open-doors");
  
      breed("drunken priest", aqua, 9, [
        attack("hit[s]", 3),
  
negative.code: 
      drop = parseDrop(drop);
  
      var flagSet = new Set<String>();
      if (_flags != null) flagSet.addAll(_flags.split(" "));
      if (flags != null) flagSet.addAll(flags.split(" "));
  
      final breed = new Breed(name, Pronoun.IT, appearance(_glyph), attacks,
          moves, drop, maxHealth: health, tracking: tracking, meander: meander,
  