```python
from typing import List

def steps_on(first: int, count: int) -> List[int]:
    """Return the numbers a sequence should hold, running from `first` for `count`.
    
    Examples:
    >>> steps_on(1, 2)
    [1, 2]
    >>> steps_on(5, 3)
    [5, 6, 7]
    """
    return list(range(first, first + count))

def hole_find(seen: List[int], first: int, count: int) -> int:
    """Return the first of those the sequence is missing, or nothing at all when it is missing none.
    
    Examples:
    >>> hole_find([1, 2, 4], 1, 3)
    3
    >>> hole_find([], 10, 5)
    None
    """
    if not seen:
        return first
    for i in range(first + count):
        if i not in seen:
            return i
```

This solution adheres to the task contract by implementing both `steps_on` and `hole_find` functions as per the requirements. The examples provided demonstrate how these functions should behave according to the problem statement.