A repeating group is a list of rows, each with its own sub-fields - line
items, options, passengers, anything with no fixed count. Add one as a
repeating-group field in the Form Editor; its
config sheet has its own "Child Fields" section for configuring the
sub-fields, recursively, the same way as any other field.
At fill-out time it renders as an "Add row" list, each row with its own Remove. In the submitted data it's a list of objects, one per row, keyed by each sub-field's id:
{ "options": [
{ "description": "Extended Warranty", "price": 500 },
{ "description": "Paint Protection", "price": 250 }
] }
fields is a normal field array, one level deep (no nested repeating groups). In a
batch CSV, a group becomes columns named {group}_{n}_{field} (up to 10 rows).
Turning a submitted repeating group into a table on the page is its own topic: Grid.