def METHOD_NAME(cls, vehicle: Type[VehicleType]) -> Iterator[GroundUnitType]:
    data_path = Path("resources/units/ground_units") / f"{vehicle.id}.yaml"
    if not data_path.exists():
        logging.warning(f"No data for {vehicle.id}; it will not be available")
        return
    with data_path.open(encoding="utf-8") as data_file:
        data = yaml.safe_load(data_file)
    try:
        introduction = data["introduced"]
        if introduction is None:
            introduction = "N/A"
    except KeyError:
        introduction = "No data."
    class_name = data.get("class")
    if class_name is None:
        logging.warning(f"{vehicle.id} has no class")
        unit_class = UnitClass.UNKNOWN
    else:
        unit_class = UnitClass(class_name)
    for variant in data.get("variants", [vehicle.id]):
        yield GroundUnitType(
            dcs_unit_type=vehicle,
            unit_class=unit_class,
            spawn_weight=data.get("spawn_weight", 0),
            name=variant,
            description=data.get(
                "description",
                f"No data. <a href=\"https://google.com/search?q=DCS+{variant.replace(' ', '+')}\"><span style=\"color:#FFFFFF\">Google {variant}</span></a>",
            ),
            year_introduced=introduction,
            country_of_origin=data.get("origin", "No data."),
            manufacturer=data.get("manufacturer", "No data."),
            role=data.get("role", "No data."),
            price=data.get("price", 1),
            skynet_properties=SkynetProperties.from_data(
                data.get("skynet_properties", {})
            ),
            reversed_heading=data.get("reversed_heading", False),
        )