```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 or head not in store:
        raise ValueError("Invalid store or head.")
    
    names = []
    current_store = store
    
    while current_store and head in current_store:
        names.append(current_store[head])
        current_store = current_store[head]
    
    return names
```