```python
def cheapest_pass_plan(trip_days: list[int], passes: list[dict[str, int]]) -> dict[str, any]:
    if not trip_days or not passes:
        return {"total": 0, "purchases": []}
    
    if any(not isinstance(day, int) or day <= 0 for day in trip_days):
        raise ValueError("Trip days must be positive integers.")
    if not all(trip_days[i] < trip_days[i + 1] for i in range(len(trip_days) - 1)):
        raise ValueError("Trip days must be strictly increasing.")
    
    if any(not isinstance(pass_, dict) or 'span' not in pass_ or 'cost' not in pass_
           for pass_ in passes):
        raise ValueError("Passes must be dictionaries with 'span' and 'cost'.")
    if any(not isinstance(span, int) or span <= 0 for pass_ in passes for span in [pass_['span']]):
        raise ValueError("Span must be a positive integer.")
    if any(not isinstance(cost, int) or cost < 0 for pass_ in passes for cost in [pass_['cost']]):
        raise ValueError("Cost must be a non-negative integer.")
    
    n_days = trip_days[-1] + 1
    dp = [(float('inf'), []) for _ in range(n_days)]
    dp[0] = (0, [])
    
    for day in trip_days:
        for pass_ in passes:
            start_day = max(0, day - pass_['span'] + 1)
            cost = dp[start_day][0] + pass_['cost']
            if cost < dp[day][0]:
                dp[day] = (cost, dp[start_day][1] + [[start_day, pass_['span']]])
    
    return {"total": dp[-1][0], "purchases": dp[-1][1]}
```