```python
"""The cheapest set of travel passes covering every trip day."""

from typing import List, Dict


def _validate_plan(trip_days: List[int], passes: List[Dict[str, int]]):
    for day in trip_days:
        if not isinstance(day, int) or day < 1:
            raise ValueError("trip days must be positive integers")
    for earlier, later in zip(trip_days, trip_days[1:]):
        if later <= earlier:
            raise ValueError("trip days must be strictly increasing")
    if not passes:
        raise ValueError("at least one pass kind is required")
    for cover in passes:
        span = cover["span"]
        cost = cover["cost"]
        if not isinstance(span, int) or span < 1:
            raise ValueError("pass span must be a positive integer")
        if not isinstance(cost, int) or cost < 0:
            raise ValueError("pass cost must be a non-negative integer")


def cheapest_pass_plan(trip_days: List[int], passes: List[Dict[str, int]]) -> Dict[str, int]:
    _validate_plan(trip_days, passes)
    if not trip_days:
        return {"total": 0, "purchases": []}
    
    trips = set(trip_days)
    cheapest = float('inf')
    best_purchases = []
    
    for day in sorted(trips):
        for pass_kind in passes:
            span = pass_kind["span"]
            cost = pass_kind["cost"]
            if day >= 0 and day + span - 1 in trips:
                total_cost = cost * span
                if total_cost < cheapest:
                    cheapest = total_cost
                    best_purchases = [[day, span]]
                elif total_cost == cheapest:
                    best_purchases.append([day, span])
    
    return {"total": cheapest, "purchases": best_purchases}
```