```python
def key_path(store: dict, head: str) -> list:
    """
    Given a store whose names are joined by full stops, return the names standing directly under a stated head,
    without the head and its stop. Names under a deeper head are left out, in the order the store holds them.
    """
    if not store or not head:
        return []

    head_parts = head.split('.')
    result = []

    for name, value in store.items():
        if name.startswith(head_parts[0]):
            if len(head_parts) == 1:
                result.append(name)
            else:
                result.extend(key_path(value, '.'.join(head_parts[1:])))
    return result
```