- A table has two parts: a schema, and a rectangular collection of cells.
- A schema is an ordered sequence of column names and sorts.
- Column names must be distinct (no duplicates)
- A column name is a string-like first-class value
- A sort is a specification of the data that a column contains.
- Each cell in the i-th column must match the i-th sort.
- Cells may be organized into rows or columns. Either way:
- All rows must have the same length
- All columns must have the same length
- Cells may contain data or may be missing data
- A header is an ordered sequence of column names (a schema without sorts)