def METHOD_NAME(
    cls,
    initial: Point,
    max_distance: int,
    heading: Heading,
    theater: ConflictTheater,
) -> Point:
    """Finds the first intersection with an exclusion zone in one heading from an initial point up to max_distance"""
    extended = initial.point_from_heading(heading.degrees, max_distance)
    if theater.landmap is None:
        # TODO: Why is this possible?
        return extended
    p0 = ShapelyPoint(initial.x, initial.y)
    p1 = ShapelyPoint(extended.x, extended.y)
    line = LineString([p0, p1])
    intersection = line.intersection(theater.landmap.inclusion_zone_only.boundary)
    if intersection.is_empty:
        # Max extent does not intersect with the boundary of the inclusion
        # zone, so the full front line is usable. This does assume that the
        # front line was centered on a valid location.
        return extended
    # Otherwise extend the front line only up to the intersection.
    return initial.point_from_heading(heading.degrees, p0.distance(intersection))