BigQuery tables are often nested. A RECORD column (a STRUCT in SQL) holds several named fields together: orders.shipping has method, cost and country. The schema tab shows its type as RECORD, with the fields indented under it.
Read a field with a dot: shipping.country. With a table alias, it's o.shipping.country. The result column is named after the field, country. Use shipping.* to get every field as its own column.
Fields work anywhere a column does: in WHERE, GROUP BY and inside functions. The GA4 tables nest a lot: device.category, geo.country, traffic_source.source.
A RECORD keeps related values together without a join. It costs nothing extra to query: BigQuery stores each field as its own column, so shipping.country reads only that field.