public System(
    String name, String houseName, String description,
    String imgName, float starX, float starY,
    Trait climate, int gravity, Object... args
  ) {
    super(name, null, null, -1, NOT_A_GUILD, args) ;
    this.houseName = houseName ;
    this.description = description ;
    this.image = imgName == null ? null : Texture.loadTexture(imgName) ;
    this.starCoords = new Vec2D(starX, starY) ;
    
    this.climate = climate ;
    this.gravity = gravity ;
    
    final Batch <Service> madeB = new Batch(), needB = new Batch() ;
    Object tag = null ;
    for (Object arg : args) {
      if (arg == MAKES || arg == NEEDS) tag = arg ;
      if (arg instanceof Service) {
        if (tag == MAKES) madeB.add((Service) arg) ;
        if (tag == NEEDS) needB.add((Service) arg) ;
      }
    }
    
    goodsMade   = madeB.toArray(Service.class) ;
    goodsNeeded = needB.toArray(Service.class) ;
  }