def METHOD_NAME(*, generator_name: str, generator_arguments: GeneratorArguments) -> Model:
    """Generate a model.
    Parameters
    ----------
    generator_name : str
        The generator to use.
    generator_arguments : GeneratorArguments
        Arguments for the generator.
    Returns
    -------
    Model
        The generated model
    See Also
    --------
    generate_parallel_decay_model
    generate_parallel_spectral_decay_model
    generate_sequential_decay_model
    generate_sequential_spectral_decay_model
    Raises
    ------
    ValueError
        Raised when an unknown generator is specified.
    """
    if generator_name not in generators:
        raise ValueError(
            f"Unknown model generator '{generator_name}'. "
            f"Known generators are: {list(generators.keys())}"
        )
    model = generators[generator_name](**generator_arguments)
    return Model.create_class_from_megacomplexes(
        [DecayParallelMegacomplex, DecaySequentialMegacomplex, SpectralMegacomplex]
    )(**model)