def is_valid(name):
    """Return whether name is valid for Pygame Zero.

    name can contain lowercase letters, numbers and underscores only.
    They also have to start with a letter.

    Args:
        name: String name to test.
    Returns:
        True if name is valid for Pygame Zero. False otherwise.
    """
    if not isinstance(name, str):
        return False
    if len(name) <= 0:
        return False
    if not name[0].isalpha():
        return False
    no_underscore = name.replace('_', '')
    if no_underscore.islower() and no_underscore.isalnum():
        return True
    return False