```python
from typing import List, Dict, Any

def pick_fields(records: List[Dict[str, Any]], fields: List[str]) -> List[List[Any]]:
    if not isinstance(records, list):
        raise ValueError("Input records must be a list.")
    if not isinstance(fields, list):
        raise ValueError("Input fields must be a list.")
    
    # Check if all records are dictionaries
    for record in records:
        if not isinstance(record, dict):
            raise ValueError("All records must be dictionaries.")
    
    # Check if all field names are strings
    for field in fields:
        if not isinstance(field, str):
            raise ValueError("All field names must be strings.")
    
    # Check for required fields
    for record in records:
        for field in fields:
            if field not in record:
                raise ValueError(f"Record {record} is missing the required field {field}.")
    
    # Extract the required fields for each record
    result = []
    for record in records:
        row = []
        for field in fields:
            if field.endswith('?'):
                stem = field[:-1]
                if stem in record:
                    row.append(record[stem])
                else:
                    row.append(None)
            else:
                row.append(record[field])
        result.append(row)
    
    return result
```