PCollective CollectiveBuilder::build() {
  Collective* c = new Collective(NOTNULL(level), config, tribe, credit, name);
  for (auto& elem : creatures)
    c->addCreature(elem.creature, elem.traits);
  for (Vec2 v : squares)
    c->claimSquare(Position(v, level));
  return PCollective(c);
}
PCollective CollectiveBuilder::build() {
  Collective* c = new Collective(level, config, tribe);
  for (auto& elem : creatures)
    c->addCreature(elem.creature, elem.traits);
  return PCollective(c);
}