AEM provides OOTB multi-field in which only one widget/field can be configured as part of the multi-field.
For example, have a look at the OOTB list component
setStatic/items/well/items/pages) which only has a single field in a multifield.
In most cases this might not suffice your requirement. You might need a composite multi-field with 2 or more fields as part of the multi-field.
To achieve this there are multiple options. You can choose to go with either of them.
1. Touch UI Composite Multifield Store Values as Child Nodes
2. Touch UI composite multifield Store Values in Json format.
3. Use ACS-Commons which provides both nodestore and jsonstore options.
a. Store Values as Child Nodes
Note the usage of acs-commons-nested property, value set to NODE_STORE
b. Store Values in Json format.
Note the usage of acs-commons-nested property, value set to JSON_STORE