```python
from typing import List, Optional

def cell_at(grid: List[List[int]], row: int, column: int) -> Optional[int]:
    """Return the value at the specified row and column of the grid, or None if out of bounds."""
    if not (0 <= row < len(grid) and 0 <= column < len(grid[0])):
        return None
    return grid[row][column]

def diag_of(grid: List[List[int]]) -> List[int]:
    """Return the values running down the grid's main diagonal from the top left."""
    if len(grid) != len(grid[0]):
        raise ValueError("Grid must be square for a main diagonal.")
    return [grid[i][i] for i in range(len(grid))]
```