You can use MixedFieldCollections when you have multiple items with multiple types of possible content like text or images.

{
  "key": "blocks",
  "label": "Blocks",
  "type": "MixedFieldCollection",
  "options": {
    "initialBlock": "textblock",
    "blocks": [
      {
        "key": "textblock",
        "name": "Text",
        "components": [
          {
            "key": "text",
            "label": "Text",
            "type": "Wysiwyg"
          }
        ]
      },
      {
        "key": "imageblock",
        "name": "Image",
        "icon": "image",
        "components": [
          {
            "key": "image",
            "label": "Image",
            "type": "Link",
            "options": {
              "type": "image"
            }
          }
        ]
      }
    ]
  }
}

Properties

@:optionalcomponents:Null<Array<ComponentConfig>>

You can add one or more components of different types.

@:optionaldragdrop:Null<Bool>

@:optionalhelp:Null<Dynamic>

Adding help or instructional text to a field.

"help": "This field can only contain letters."

@:optionalhidden:Null<Bool>

Hide this field in the interface.

"hidden": true

@:optionalinitialItem:Null<Bool>

Set to false to disable showing an empty item by default

@:optionalmax:Null<Int>

@:optionalmin:Null<Int>

@:optionalminimal:Null<Bool>

Hide the label of the textfield.

"minimal": true

@:optionaloverview:Null<Bool>

@:optionaloverview_editable:Null<Bool>

@:optionaloverview_filter:Null<Bool>

@:optionaloverview_searchable:Null<Bool>

@:optionalreadonly:Null<Bool>

Field is read only.

"readonly": true

@:optionalrequired:Null<Bool>

This field can't be empty.

"required": true

@:optionalshow_when:Null<EitherType<ShowOptions, Array<ShowOptions>>>

The "value" can be set to "null" of "!null" to check if something is empty.

@:optionaltemplates:Null<Array<TemplateData>>

@:optionalvalue:Null<Any>

@:optionalwidth:Null<Float>

Width percentpoint 0-1.

"width": 0.5"