```
def base_amount(amount: int, unit: str, defs: dict, base: str) -> int:
    if amount < 0 or not isinstance(amount, int):
        raise ValueError("Amount must be a non-negative whole number")
    if unit != base and unit not in defs:
        raise ValueError(f"Unknown unit '{unit}'")
    if unit == base:
        return amount

    while True:
        if unit not in defs:
            raise ValueError(f"Chain to base '{base}' loops for unit '{unit}'")
        factor, finer = defs[unit]
        if factor <= 0 or not isinstance(factor, int):
            raise ValueError("Factor must be a positive whole number")
        amount *= factor
        unit = finer
        if unit == base:
            return amount
```