def selector(selection_string: str, options: "list[str]", default = None) -> str:
    """
    Asks the user for an option within a list of provided options and an optional default and returns their response
    """
    while True:
        if default:
            input_string = f"{selection_string} ({', '.join(options)}), default={default}: "
        else:
            input_string = f"{selection_string} ({', '.join(options)}): "
        option = input(input_string).strip().lower()
        if len(option) == 0 and default:
            return default
        if option in options:
            return option
        print(f"'{option}' is not a valid option! Valid options are: {', '.join(options)}")