from collections import Counter
from typing import Iterable

def f1_score(prediction: Iterable, ground_truth: Iterable, **kwargs) -> float:
    """
    Calculates the F1 score between two sequences, `prediction` and `ground_truth`.

    The F1 score is the harmonic mean of precision and recall, which are computed as follows:
    - Precision: The ratio of the number of common elements between `prediction` and `ground_truth` to the total number of elements in `prediction`.
    - Recall: The ratio of the number of common elements between `prediction` and `ground_truth` to the total number of elements in `ground_truth`.

    The function uses the `Counter` class from the `collections` module to count the occurrences of elements in both sequences and determine the intersection.

    Args:
        prediction (Iterable): The predicted sequence of elements.
        ground_truth (Iterable): The ground truth sequence of elements.
        **kwargs: Additional arguments (unused in the current implementation).

    Returns:
        float: The calculated F1 score, ranging from 0 to 1. Returns 0 if there are no common elements between `prediction` and `ground_truth`.

    """
    # TODO: Implement this function
    pass