```python
from typing import List

def crate_fill(items: int, crates: int) -> List[int]:
    if crates <= 0:
        return []
    if items == 0:
        return [0] * crates

    # Calculate the base size for each crate and the remainder
    base_size = items // crates
    remainder = items % crates

    # Create the result list with the base size
    result = [base_size] * crates

    # Distribute the remainder among the leading crates
    for i in range(remainder):
        result[i] += 1

    return result

def crate_total(sizes: List[int]) -> int:
    return sum(sizes)
```