code: def type(self, variant_probe_coverages, variant=None):
          
          if not isinstance(variant_probe_coverages, list):
              variant_probe_coverages = [variant_probe_coverages]
          calls = []
          for variant_probe_coverage in variant_probe_coverages:
              calls.append(
                  self._type_variant_probe_coverages(
                      variant_probe_coverage, variant))
          hom_alt_calls = [c for c in calls if sum(c["genotype"]) > 1]
          het_calls = [c for c in calls if sum(c["genotype"]) == 1]
          if hom_alt_calls:
              hom_alt_calls.sort(key=lambda x: x["info"]["conf"], reverse=True)
              return hom_alt_calls[0]
          elif het_calls:
              het_calls.sort(key=lambda x: x["info"]["conf"], reverse=True)
              return het_calls[0]
          else:
              calls.sort(key=lambda x: x["info"]["conf"], reverse=True)
              return calls[0]
docs: Takes a list of VariantProbeCoverages and returns a Call for the Variant.
              Note, in the simplest case the list will be of length one. However, we may be typing the
              Variant on multiple backgrouds leading to multiple VariantProbes for a single Variant.