{
    entities: [
        {
            name: "contact",
            fields: [
                {
                    name: "name",
                    type: "string",
                    required: true,
                },
                {
                    name: "gender",
                    type: "string",
                    required: true,
                },
                {
                    name: "emails",
                    type: "array",
                    arrayType: "entity",
                    entityType: "email",
                    layoutName: "edit",
                    addText: "Add e-mail address",
                    innerSize: 8
                },
                {
                    name: "phones",
                    type: "array",
                    arrayType: "entity",
                    entityType: "phone",
                    layoutName: "edit",
                    addText: "Add phone",
                    innerSize: 8
                }
            ],
            layouts: [
                {
                    name: "edit",
                    groups: [
                        {
                            fields: [
                                {
                                    displayName: "Full name",
                                    name: "name"
                                },
                                {
                                    displayName: "Gender",
                                    name: "gender",
                                    component: "Select",
                                    innerSize: 6,
                                    options: [
                                        { value: '', text: '' },
                                        { value: 'male', text: 'Male' },
                                        { value: 'female', text: 'Female' },
                                    ]
                                },
                                {
                                    displayName: "E-mails",
                                    name: "emails"
                                },

                                {
                                    displayName: "Phones",
                                    name: "phones"
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        {
            name: "email",
            fields: [
                {
                    name: "emailType",
                    type: "string"
                },
                {
                    name: "address",
                    type: "string"
                }
            ],
            layouts: [
                {
                    name: "edit",
                    orientation: "horizontal",
                    fields: [
                        {
                            displayName: null,
                            name: "emailType",
                            size: 4,
                            component: 'Select',
                            options: [
                                { value: 'work', text: 'Work' },
                                { value: 'home', text: 'Home' },
                                { value: 'personal', text: 'Personal' },
                                { value: 'other', text: 'Other' }
                            ]
                        },
                        {
                            displayName: null,
                            name: "address",
                            required: true,
                            placeholder: 'E-mail adress',
                            size: 8
                        }

                    ]
                }
            ]
        },
        {
            name: "phone",
            fields: [
                {
                    name: "number",
                    type: "string"
                },
                {
                    name: "longDistanceCode",
                    type: "string"
                }
            ],
            layouts: [
                {
                    name: "edit",
                    orientation: "horizontal",
                    fields: [
                        {
                            displayName: null,
                            name: "longDistanceCode",
                            size: 4,
                            placeholder: 'Region code'
                        },
                        {
                            displayName: null,
                            name: "number",
                            required: true,
                            size: 8,
                            placeholder: 'Phone number'
                        }

                    ]
                }
            ]
        }
    ]
}