```python
import re

def seat_block(label: str) -> list:
    """
    Extracts the row number and seat letter from a seat label.
    
    Args:
        label (str): The seat label in the format "row_numberseat_letter".
        
    Returns:
        list: A list containing the row number as an integer and the seat letter as a string.
        
    Raises:
        ValueError: If the input does not match the expected format.
    """
    if not isinstance(label, str):
        raise ValueError("Input must be a string.")
    
    pattern = r'^(\d+)([A-Z])$'
    match = re.match(pattern, label)
    
    if not match:
        raise ValueError("Invalid seat label format. Expected 'row_numberseat_letter'.")
    
    row_number = int(match.group(1))
    seat_letter = match.group(2)
    
    return [row_number, seat_letter]
```