def validate_tags(data: list) -> bool:
    """
    Validate input for the ``tags`` field.

    * It must be a list
    * Must be at least 3 characters
    * May not end nor start with whitespace

    Args:
        data (list): The data to be validated.

    Returns:
        bool: Validation passed.

    Raises:
        ValueError: Validation failed.
    """
    if not isinstance(data, list):
        raise ValueError(f"Not a list ({data})")
    for value in data:
        if not isinstance(value, str):
            raise ValueError(f"All list entries must be str ({value})")
        if len(value) < 3:
            raise ValueError("Must be at least three characters")
        if len(value) != len(value.strip()):
            raise ValueError("May not start nor end with whitespace")
    return True