```python
def best_harvest(yields: list) -> int:
    """Return the maximum total yield from an orchard where no two consecutive days can be worked.

    Args:
        yields: A list of non-negative integers representing daily yields in kilos.

    Returns:
        The maximum total yield possible.

    Raises:
        ValueError: If yields is not a list, contains non-integer values, or contains negative values.
    """
    if not isinstance(yields, list):
        raise ValueError("yields must be a list")

    if not yields:
        return 0

    # Validate all yields are integers and non-negative
    for i, yield_val in enumerate(yields):
        if not isinstance(yield_val, int):
            raise ValueError("all yields must be integers")
        if yield_val < 0:
            raise ValueError("all yields must be non-negative")

    n = len(yields)
    if n == 1:
        return yields[0]

    # DP: dp[i] = max total yield considering days 0..i
    # dp[0] = yields[0]
    # dp[1] = max(yields[0], yields[1])
    # dp[i] = max(dp[i-1], dp[i-2] + yields[i])
    prev2 = yields[0]
    prev1 = max(yields[0], yields[1])

    for i in range(2, n):
        current = max(prev1, prev2 + yields[i])
        prev2 = prev1
        prev1 = current

    return prev1
```