def METHOD_NAME(self) -> SweepLayout:
    assert self.package.waypoints is not None
    target = self.package.target.position
    heading = Heading.from_degrees(
        self.package.waypoints.join.heading_between_point(target)
    )
    start_pos = target.point_from_heading(
        heading.degrees, -self.doctrine.sweep_distance.meters
    )
    builder = WaypointBuilder(self.flight, self.coalition)
    start, end = builder.sweep(start_pos, target, self.doctrine.ingress_altitude)
    hold = builder.hold(self._hold_point())
    return SweepLayout(
        departure=builder.takeoff(self.flight.departure),
        hold=hold,
        nav_to=builder.nav_path(
            hold.position, start.position, self.doctrine.ingress_altitude
        ),
        nav_from=builder.nav_path(
            end.position,
            self.flight.arrival.position,
            self.doctrine.ingress_altitude,
        ),
        sweep_start=start,
        sweep_end=end,
        arrival=builder.land(self.flight.arrival),
        divert=builder.divert(self.flight.divert),
        bullseye=builder.bullseye(),
    )