```python
def swipe_dedupe(swipes: list) -> list:
    """
    Drop any swipe that simply repeats the one immediately before it, keeping the first of each such run.
    A card swiped again later, with a different card in between, is kept.
    
    :param swipes: List of card swipes in the order they were recorded.
    :return: A list of card swipes with duplicates removed.
    """
    if not swipes:
        return []
    
    deduplicated_swipes = [swipes[0]]
    for swipe in swipes[1:]:
        if swipe != deduplicated_swipes[-1]:
            deduplicated_swipes.append(swipe)
    
    return deduplicated_swipes
```