Column types drive the table
You define the table column by column, not record by record. Each column gets a value type - person name, email address, integer with bounds, date, city, category - and a row count sets how many values each generator produces. Cells are then filled by sampling from the corresponding generator, so every column is internally consistent with its type but independent of the others.