npm package diff

Package: @forge/manifest

Versions: 7.6.1-next.1 - 7.7.0-next.2

File: package/out/schema/manifest-schema.json

Index: package/out/schema/manifest-schema.json
===================================================================
--- package/out/schema/manifest-schema.json
+++ package/out/schema/manifest-schema.json
@@ -4068,16 +4068,66 @@
                     "items": {
                         "type": "object",
                         "properties": {
                             "name": {
+                                "anyOf": [
+                                    {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 255
+                                    },
+                                    {
+                                        "additionalProperties": false,
+                                        "type": "object",
+                                        "properties": {
+                                            "i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                            }
+                                        },
+                                        "required": [
+                                            "i18n"
+                                        ]
+                                    }
+                                ]
+                            },
+                            "name__i18n": {
+                                "type": "string",
                                 "minLength": 1,
-                                "maxLength": 255,
-                                "type": "string"
+                                "maxLength": 300,
+                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                             },
                             "description": {
+                                "anyOf": [
+                                    {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 1000
+                                    },
+                                    {
+                                        "additionalProperties": false,
+                                        "type": "object",
+                                        "properties": {
+                                            "i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                            }
+                                        },
+                                        "required": [
+                                            "i18n"
+                                        ]
+                                    }
+                                ]
+                            },
+                            "description__i18n": {
+                                "type": "string",
                                 "minLength": 1,
-                                "maxLength": 1000,
-                                "type": "string"
+                                "maxLength": 300,
+                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                             },
                             "function": {
                                 "type": "string",
                                 "minLength": 1,
@@ -4089,10 +4139,25 @@
                             },
                             "errorMessage": {
                                 "anyOf": [
                                     {
+                                        "additionalProperties": false,
                                         "type": "object",
                                         "properties": {
+                                            "i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                            }
+                                        },
+                                        "required": [
+                                            "i18n"
+                                        ]
+                                    },
+                                    {
+                                        "type": "object",
+                                        "properties": {
                                             "expression": {
                                                 "type": "string"
                                             }
                                         },
@@ -4104,8 +4169,14 @@
                                         "type": "string"
                                     }
                                 ]
                             },
+                            "errorMessage__i18n": {
+                                "type": "string",
+                                "minLength": 1,
+                                "maxLength": 300,
+                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                            },
                             "resolver": {
                                 "anyOf": [
                                     {
                                         "additionalProperties": false,
@@ -4312,16 +4383,66 @@
                                             "expression"
                                         ]
                                     },
                                     "name": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 100
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "name__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 100,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "description": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 1000
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "description__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 1000,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "type": {
                                         "type": "string",
                                         "enum": [
@@ -4346,9 +4467,34 @@
                                             "expression": {
                                                 "type": "string"
                                             },
                                             "errorMessage": {
-                                                "type": "string"
+                                                "anyOf": [
+                                                    {
+                                                        "additionalProperties": false,
+                                                        "type": "object",
+                                                        "properties": {
+                                                            "i18n": {
+                                                                "type": "string",
+                                                                "minLength": 1,
+                                                                "maxLength": 300,
+                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                            }
+                                                        },
+                                                        "required": [
+                                                            "i18n"
+                                                        ]
+                                                    },
+                                                    {
+                                                        "type": "string"
+                                                    }
+                                                ]
+                                            },
+                                            "errorMessage__i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                             }
                                         },
                                         "required": [
                                             "expression"
@@ -4558,16 +4704,66 @@
                                         "type": "object",
                                         "properties": {}
                                     },
                                     "name": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 100
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "name__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 100,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "description": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 1000
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "description__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 1000,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "type": {
                                         "type": "string",
                                         "const": "object"
@@ -4585,9 +4781,34 @@
                                             "expression": {
                                                 "type": "string"
                                             },
                                             "errorMessage": {
-                                                "type": "string"
+                                                "anyOf": [
+                                                    {
+                                                        "additionalProperties": false,
+                                                        "type": "object",
+                                                        "properties": {
+                                                            "i18n": {
+                                                                "type": "string",
+                                                                "minLength": 1,
+                                                                "maxLength": 300,
+                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                            }
+                                                        },
+                                                        "required": [
+                                                            "i18n"
+                                                        ]
+                                                    },
+                                                    {
+                                                        "type": "string"
+                                                    }
+                                                ]
+                                            },
+                                            "errorMessage__i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                             }
                                         },
                                         "required": [
                                             "expression"
@@ -4802,16 +5023,66 @@
                                             "expression"
                                         ]
                                     },
                                     "name": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 100
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "name__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 100,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "description": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 1000
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "description__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 1000,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "type": {
                                         "type": "string",
                                         "enum": [
@@ -4836,9 +5107,34 @@
                                             "expression": {
                                                 "type": "string"
                                             },
                                             "errorMessage": {
-                                                "type": "string"
+                                                "anyOf": [
+                                                    {
+                                                        "additionalProperties": false,
+                                                        "type": "object",
+                                                        "properties": {
+                                                            "i18n": {
+                                                                "type": "string",
+                                                                "minLength": 1,
+                                                                "maxLength": 300,
+                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                            }
+                                                        },
+                                                        "required": [
+                                                            "i18n"
+                                                        ]
+                                                    },
+                                                    {
+                                                        "type": "string"
+                                                    }
+                                                ]
+                                            },
+                                            "errorMessage__i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                             }
                                         },
                                         "required": [
                                             "expression"
@@ -5108,16 +5404,66 @@
                                         "type": "object",
                                         "properties": {}
                                     },
                                     "name": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 100
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "name__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 100,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "description": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 1000
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "description__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 1000,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "type": {
                                         "type": "string",
                                         "const": "object"
@@ -5135,9 +5481,34 @@
                                             "expression": {
                                                 "type": "string"
                                             },
                                             "errorMessage": {
-                                                "type": "string"
+                                                "anyOf": [
+                                                    {
+                                                        "additionalProperties": false,
+                                                        "type": "object",
+                                                        "properties": {
+                                                            "i18n": {
+                                                                "type": "string",
+                                                                "minLength": 1,
+                                                                "maxLength": 300,
+                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                            }
+                                                        },
+                                                        "required": [
+                                                            "i18n"
+                                                        ]
+                                                    },
+                                                    {
+                                                        "type": "string"
+                                                    }
+                                                ]
+                                            },
+                                            "errorMessage__i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                             }
                                         },
                                         "required": [
                                             "expression"
@@ -5397,19 +5768,44 @@
                         "oneOf": [
                             {
                                 "type": "object",
                                 "properties": {
-                                    "title": {
-                                        "type": "string",
-                                        "minLength": 1,
-                                        "maxLength": 255
-                                    },
                                     "function": {
                                         "type": "string",
                                         "minLength": 1,
                                         "maxLength": 255,
                                         "pattern": "^[a-zA-Z0-9-_]+$"
                                     },
+                                    "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "displayConditions": {
                                         "type": "object",
                                         "properties": {}
                                     },
@@ -5417,10 +5813,10 @@
                                         "$ref": "#/definitions/ModuleKeySchema"
                                     }
                                 },
                                 "required": [
+                                    "function",
                                     "title",
-                                    "function",
                                     "key"
                                 ],
                                 "not": {
                                     "required": [
@@ -5430,12 +5826,13 @@
                             },
                             {
                                 "type": "object",
                                 "properties": {
-                                    "title": {
+                                    "resource": {
                                         "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255
+                                        "maxLength": 23,
+                                        "pattern": "^[a-zA-Z0-9_\\-]+$"
                                     },
                                     "resolver": {
                                         "anyOf": [
                                             {
@@ -5469,50 +5866,74 @@
                                                 ]
                                             }
                                         ]
                                     },
-                                    "resource": {
-                                        "type": "string",
-                                        "minLength": 1,
-                                        "maxLength": 23,
-                                        "pattern": "^[a-zA-Z0-9_\\-]+$"
-                                    },
                                     "resourceUploadId": {
                                         "type": "string",
                                         "minLength": 1,
                                         "maxLength": 255
                                     },
                                     "viewportSize": {
-                                        "type": "string",
                                         "minLength": 1,
                                         "maxLength": 255,
                                         "enum": [
+                                            "large",
+                                            "max",
+                                            "medium",
                                             "small",
-                                            "medium",
-                                            "large",
-                                            "xlarge",
-                                            "max"
+                                            "xlarge"
+                                        ],
+                                        "type": "string"
+                                    },
+                                    "render": {
+                                        "default": "default",
+                                        "enum": [
+                                            "default",
+                                            "native"
+                                        ],
+                                        "type": "string"
+                                    },
+                                    "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "displayConditions": {
                                         "type": "object",
                                         "properties": {}
                                     },
-                                    "render": {
-                                        "enum": [
-                                            "native",
-                                            "default"
-                                        ],
-                                        "type": "string",
-                                        "default": "default"
-                                    },
                                     "key": {
                                         "$ref": "#/definitions/ModuleKeySchema"
                                     }
                                 },
                                 "required": [
+                                    "resource",
                                     "title",
-                                    "resource",
                                     "key"
                                 ],
                                 "not": {
                                     "required": [
@@ -5529,12 +5950,43 @@
                     "items": {
                         "type": "object",
                         "properties": {
                             "title": {
+                                "anyOf": [
+                                    {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 255
+                                    },
+                                    {
+                                        "additionalProperties": false,
+                                        "type": "object",
+                                        "properties": {
+                                            "i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                            }
+                                        },
+                                        "required": [
+                                            "i18n"
+                                        ]
+                                    }
+                                ]
+                            },
+                            "title__i18n": {
                                 "type": "string",
                                 "minLength": 1,
-                                "maxLength": 255
+                                "maxLength": 300,
+                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                             },
+                            "resource": {
+                                "type": "string",
+                                "minLength": 1,
+                                "maxLength": 23,
+                                "pattern": "^[a-zA-Z0-9_\\-]+$"
+                            },
                             "resolver": {
                                 "anyOf": [
                                     {
                                         "additionalProperties": false,
@@ -5567,29 +6019,22 @@
                                         ]
                                     }
                                 ]
                             },
-                            "resource": {
-                                "type": "string",
-                                "minLength": 1,
-                                "maxLength": 23,
-                                "pattern": "^[a-zA-Z0-9_\\-]+$"
-                            },
                             "render": {
                                 "enum": [
-                                    "native",
-                                    "default"
+                                    "default",
+                                    "native"
                                 ],
-                                "type": "string",
-                                "default": "default"
+                                "type": "string"
                             },
                             "key": {
                                 "$ref": "#/definitions/ModuleKeySchema"
                             }
                         },
                         "required": [
+                            "resource",
                             "title",
-                            "resource",
                             "key"
                         ],
                         "not": {
                             "required": [
@@ -5612,16 +6057,66 @@
                                         "maxLength": 255,
                                         "pattern": "^[a-zA-Z0-9-_]+$"
                                     },
                                     "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "label": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "label__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "status": {
                                         "type": "object",
                                         "properties": {
@@ -5742,16 +6237,66 @@
                                         ],
                                         "type": "string"
                                     },
                                     "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "label": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "label__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "status": {
                                         "type": "object",
                                         "properties": {
@@ -5831,13 +6376,48 @@
                         "oneOf": [
                             {
                                 "type": "object",
                                 "properties": {
+                                    "function": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 255,
+                                        "pattern": "^[a-zA-Z0-9-_]+$"
+                                    },
                                     "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
                                         "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
+                                    "displayConditions": {
+                                        "type": "object",
+                                        "properties": {}
+                                    },
                                     "icon": {
                                         "type": "string",
                                         "minLength": 1,
                                         "maxLength": 255
@@ -5858,26 +6438,16 @@
                                         "required": [
                                             "function"
                                         ]
                                     },
-                                    "function": {
-                                        "type": "string",
-                                        "minLength": 1,
-                                        "maxLength": 255,
-                                        "pattern": "^[a-zA-Z0-9-_]+$"
-                                    },
-                                    "displayConditions": {
-                                        "type": "object",
-                                        "properties": {}
-                                    },
                                     "key": {
                                         "$ref": "#/definitions/ModuleKeySchema"
                                     }
                                 },
                                 "required": [
-                                    "title",
                                     "function",
                                     "icon",
+                                    "title",
                                     "key"
                                 ],
                                 "not": {
                                     "required": [
@@ -5887,35 +6457,14 @@
                             },
                             {
                                 "type": "object",
                                 "properties": {
-                                    "title": {
+                                    "resource": {
                                         "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255
+                                        "maxLength": 23,
+                                        "pattern": "^[a-zA-Z0-9_\\-]+$"
                                     },
-                                    "icon": {
-                                        "type": "string",
-                                        "minLength": 1,
-                                        "maxLength": 255
-                                    },
-                                    "allowMultiple": {
-                                        "type": "boolean"
-                                    },
-                                    "config": {
-                                        "type": "object",
-                                        "properties": {
-                                            "function": {
-                                                "type": "string",
-                                                "minLength": 1,
-                                                "maxLength": 255,
-                                                "pattern": "^[a-zA-Z0-9-_]+$"
-                                            }
-                                        },
-                                        "required": [
-                                            "function"
-                                        ]
-                                    },
                                     "resolver": {
                                         "anyOf": [
                                             {
                                                 "additionalProperties": false,
@@ -5948,51 +6497,97 @@
                                                 ]
                                             }
                                         ]
                                     },
-                                    "resource": {
-                                        "type": "string",
-                                        "minLength": 1,
-                                        "maxLength": 23,
-                                        "pattern": "^[a-zA-Z0-9_\\-]+$"
-                                    },
                                     "resourceUploadId": {
                                         "type": "string",
                                         "minLength": 1,
                                         "maxLength": 255
                                     },
                                     "viewportSize": {
-                                        "type": "string",
                                         "minLength": 1,
                                         "maxLength": 255,
                                         "enum": [
+                                            "large",
+                                            "max",
+                                            "medium",
                                             "small",
-                                            "medium",
-                                            "large",
-                                            "xlarge",
-                                            "max"
+                                            "xlarge"
+                                        ],
+                                        "type": "string"
+                                    },
+                                    "render": {
+                                        "default": "default",
+                                        "enum": [
+                                            "default",
+                                            "native"
+                                        ],
+                                        "type": "string"
+                                    },
+                                    "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "displayConditions": {
                                         "type": "object",
                                         "properties": {}
                                     },
-                                    "render": {
-                                        "enum": [
-                                            "native",
-                                            "default"
-                                        ],
+                                    "icon": {
                                         "type": "string",
-                                        "default": "default"
+                                        "minLength": 1,
+                                        "maxLength": 255
                                     },
+                                    "allowMultiple": {
+                                        "type": "boolean"
+                                    },
+                                    "config": {
+                                        "type": "object",
+                                        "properties": {
+                                            "function": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255,
+                                                "pattern": "^[a-zA-Z0-9-_]+$"
+                                            }
+                                        },
+                                        "required": [
+                                            "function"
+                                        ]
+                                    },
                                     "key": {
                                         "$ref": "#/definitions/ModuleKeySchema"
                                     }
                                 },
                                 "required": [
+                                    "icon",
+                                    "resource",
                                     "title",
-                                    "resource",
-                                    "icon",
                                     "key"
                                 ],
                                 "not": {
                                     "required": [
@@ -6010,19 +6605,44 @@
                         "oneOf": [
                             {
                                 "type": "object",
                                 "properties": {
-                                    "title": {
-                                        "type": "string",
-                                        "minLength": 1,
-                                        "maxLength": 255
-                                    },
                                     "function": {
                                         "type": "string",
                                         "minLength": 1,
                                         "maxLength": 255,
                                         "pattern": "^[a-zA-Z0-9-_]+$"
                                     },
+                                    "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "displayConditions": {
                                         "type": "object",
                                         "properties": {}
                                     },
@@ -6030,10 +6650,10 @@
                                         "$ref": "#/definitions/ModuleKeySchema"
                                     }
                                 },
                                 "required": [
+                                    "function",
                                     "title",
-                                    "function",
                                     "key"
                                 ],
                                 "not": {
                                     "required": [
@@ -6043,12 +6663,13 @@
                             },
                             {
                                 "type": "object",
                                 "properties": {
-                                    "title": {
+                                    "resource": {
                                         "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255
+                                        "maxLength": 23,
+                                        "pattern": "^[a-zA-Z0-9_\\-]+$"
                                     },
                                     "resolver": {
                                         "anyOf": [
                                             {
@@ -6082,50 +6703,74 @@
                                                 ]
                                             }
                                         ]
                                     },
-                                    "resource": {
-                                        "type": "string",
-                                        "minLength": 1,
-                                        "maxLength": 23,
-                                        "pattern": "^[a-zA-Z0-9_\\-]+$"
-                                    },
                                     "resourceUploadId": {
                                         "type": "string",
                                         "minLength": 1,
                                         "maxLength": 255
                                     },
                                     "viewportSize": {
-                                        "type": "string",
                                         "minLength": 1,
                                         "maxLength": 255,
                                         "enum": [
+                                            "large",
+                                            "max",
+                                            "medium",
                                             "small",
-                                            "medium",
-                                            "large",
-                                            "xlarge",
-                                            "max"
+                                            "xlarge"
+                                        ],
+                                        "type": "string"
+                                    },
+                                    "render": {
+                                        "default": "default",
+                                        "enum": [
+                                            "default",
+                                            "native"
+                                        ],
+                                        "type": "string"
+                                    },
+                                    "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "displayConditions": {
                                         "type": "object",
                                         "properties": {}
                                     },
-                                    "render": {
-                                        "enum": [
-                                            "native",
-                                            "default"
-                                        ],
-                                        "type": "string",
-                                        "default": "default"
-                                    },
                                     "key": {
                                         "$ref": "#/definitions/ModuleKeySchema"
                                     }
                                 },
                                 "required": [
+                                    "resource",
                                     "title",
-                                    "resource",
                                     "key"
                                 ],
                                 "not": {
                                     "required": [
@@ -6164,14 +6809,32 @@
                                             "function"
                                         ]
                                     },
                                     "title": {
-                                        "minLength": 1,
-                                        "maxLength": 255,
                                         "anyOf": [
                                             {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
                                                 "type": "object",
                                                 "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            },
+                                            {
+                                                "type": "object",
+                                                "properties": {
                                                     "text": {
                                                         "minLength": 1,
                                                         "maxLength": 255,
                                                         "type": "string"
@@ -6185,18 +6848,46 @@
                                                 "required": [
                                                     "href",
                                                     "text"
                                                 ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
+                                    "description": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 1000
                                             },
                                             {
-                                                "type": "string"
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
                                             }
                                         ]
                                     },
-                                    "description": {
+                                    "description__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "thumbnail": {
                                         "type": "string",
                                         "minLength": 1,
@@ -6298,14 +6989,32 @@
                                         ],
                                         "type": "string"
                                     },
                                     "title": {
-                                        "minLength": 1,
-                                        "maxLength": 255,
                                         "anyOf": [
                                             {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
                                                 "type": "object",
                                                 "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            },
+                                            {
+                                                "type": "object",
+                                                "properties": {
                                                     "text": {
                                                         "minLength": 1,
                                                         "maxLength": 255,
                                                         "type": "string"
@@ -6319,18 +7028,46 @@
                                                 "required": [
                                                     "href",
                                                     "text"
                                                 ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
+                                    "description": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 1000
                                             },
                                             {
-                                                "type": "string"
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
                                             }
                                         ]
                                     },
-                                    "description": {
+                                    "description__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "thumbnail": {
                                         "type": "string",
                                         "minLength": 1,
@@ -6383,11 +7120,36 @@
                                         ],
                                         "type": "string"
                                     },
                                     "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
                                         "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "icon": {
                                         "type": "string",
                                         "minLength": 1,
@@ -6398,11 +7160,36 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "title": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "title__i18n": {
                                                     "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "route": {
                                                     "minLength": 1,
                                                     "maxLength": 255,
@@ -6425,21 +7212,71 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "header": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "header__i18n": {
+                                                    "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255,
-                                                    "type": "string"
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "pages": {
                                                     "type": "array",
                                                     "items": {
                                                         "type": "object",
                                                         "properties": {
                                                             "title": {
+                                                                "anyOf": [
+                                                                    {
+                                                                        "type": "string",
+                                                                        "minLength": 1,
+                                                                        "maxLength": 255
+                                                                    },
+                                                                    {
+                                                                        "additionalProperties": false,
+                                                                        "type": "object",
+                                                                        "properties": {
+                                                                            "i18n": {
+                                                                                "type": "string",
+                                                                                "minLength": 1,
+                                                                                "maxLength": 300,
+                                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                            }
+                                                                        },
+                                                                        "required": [
+                                                                            "i18n"
+                                                                        ]
+                                                                    }
+                                                                ]
+                                                            },
+                                                            "title__i18n": {
                                                                 "type": "string",
                                                                 "minLength": 1,
-                                                                "maxLength": 255
+                                                                "maxLength": 300,
+                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                             },
                                                             "route": {
                                                                 "minLength": 1,
                                                                 "maxLength": 255,
@@ -6552,11 +7389,36 @@
                                         ],
                                         "type": "string"
                                     },
                                     "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
                                         "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "icon": {
                                         "type": "string",
                                         "minLength": 1,
@@ -6567,11 +7429,36 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "title": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "title__i18n": {
                                                     "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "route": {
                                                     "minLength": 1,
                                                     "maxLength": 255,
@@ -6594,21 +7481,71 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "header": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "header__i18n": {
+                                                    "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255,
-                                                    "type": "string"
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "pages": {
                                                     "type": "array",
                                                     "items": {
                                                         "type": "object",
                                                         "properties": {
                                                             "title": {
+                                                                "anyOf": [
+                                                                    {
+                                                                        "type": "string",
+                                                                        "minLength": 1,
+                                                                        "maxLength": 255
+                                                                    },
+                                                                    {
+                                                                        "additionalProperties": false,
+                                                                        "type": "object",
+                                                                        "properties": {
+                                                                            "i18n": {
+                                                                                "type": "string",
+                                                                                "minLength": 1,
+                                                                                "maxLength": 300,
+                                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                            }
+                                                                        },
+                                                                        "required": [
+                                                                            "i18n"
+                                                                        ]
+                                                                    }
+                                                                ]
+                                                            },
+                                                            "title__i18n": {
                                                                 "type": "string",
                                                                 "minLength": 1,
-                                                                "maxLength": 255
+                                                                "maxLength": 300,
+                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                             },
                                                             "route": {
                                                                 "minLength": 1,
                                                                 "maxLength": 255,
@@ -6681,11 +7618,36 @@
                                         ],
                                         "type": "string"
                                     },
                                     "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
                                         "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "icon": {
                                         "type": "string",
                                         "minLength": 1,
@@ -6696,11 +7658,36 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "title": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "title__i18n": {
                                                     "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "route": {
                                                     "minLength": 1,
                                                     "maxLength": 255,
@@ -6723,21 +7710,71 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "header": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "header__i18n": {
+                                                    "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255,
-                                                    "type": "string"
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "pages": {
                                                     "type": "array",
                                                     "items": {
                                                         "type": "object",
                                                         "properties": {
                                                             "title": {
+                                                                "anyOf": [
+                                                                    {
+                                                                        "type": "string",
+                                                                        "minLength": 1,
+                                                                        "maxLength": 255
+                                                                    },
+                                                                    {
+                                                                        "additionalProperties": false,
+                                                                        "type": "object",
+                                                                        "properties": {
+                                                                            "i18n": {
+                                                                                "type": "string",
+                                                                                "minLength": 1,
+                                                                                "maxLength": 300,
+                                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                            }
+                                                                        },
+                                                                        "required": [
+                                                                            "i18n"
+                                                                        ]
+                                                                    }
+                                                                ]
+                                                            },
+                                                            "title__i18n": {
                                                                 "type": "string",
                                                                 "minLength": 1,
-                                                                "maxLength": 255
+                                                                "maxLength": 300,
+                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                             },
                                                             "route": {
                                                                 "minLength": 1,
                                                                 "maxLength": 255,
@@ -6844,11 +7881,36 @@
                                         ],
                                         "type": "string"
                                     },
                                     "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
                                         "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "icon": {
                                         "type": "string",
                                         "minLength": 1,
@@ -6859,11 +7921,36 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "title": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "title__i18n": {
                                                     "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "route": {
                                                     "minLength": 1,
                                                     "maxLength": 255,
@@ -6886,21 +7973,71 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "header": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "header__i18n": {
+                                                    "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255,
-                                                    "type": "string"
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "pages": {
                                                     "type": "array",
                                                     "items": {
                                                         "type": "object",
                                                         "properties": {
                                                             "title": {
+                                                                "anyOf": [
+                                                                    {
+                                                                        "type": "string",
+                                                                        "minLength": 1,
+                                                                        "maxLength": 255
+                                                                    },
+                                                                    {
+                                                                        "additionalProperties": false,
+                                                                        "type": "object",
+                                                                        "properties": {
+                                                                            "i18n": {
+                                                                                "type": "string",
+                                                                                "minLength": 1,
+                                                                                "maxLength": 300,
+                                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                            }
+                                                                        },
+                                                                        "required": [
+                                                                            "i18n"
+                                                                        ]
+                                                                    }
+                                                                ]
+                                                            },
+                                                            "title__i18n": {
                                                                 "type": "string",
                                                                 "minLength": 1,
-                                                                "maxLength": 255
+                                                                "maxLength": 300,
+                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                             },
                                                             "route": {
                                                                 "minLength": 1,
                                                                 "maxLength": 255,
@@ -6967,11 +8104,36 @@
                                         ],
                                         "type": "string"
                                     },
                                     "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
                                         "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "icon": {
                                         "type": "string",
                                         "minLength": 1,
@@ -6982,11 +8144,36 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "title": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "title__i18n": {
                                                     "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "route": {
                                                     "minLength": 1,
                                                     "maxLength": 255,
@@ -7009,21 +8196,71 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "header": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "header__i18n": {
+                                                    "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255,
-                                                    "type": "string"
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "pages": {
                                                     "type": "array",
                                                     "items": {
                                                         "type": "object",
                                                         "properties": {
                                                             "title": {
+                                                                "anyOf": [
+                                                                    {
+                                                                        "type": "string",
+                                                                        "minLength": 1,
+                                                                        "maxLength": 255
+                                                                    },
+                                                                    {
+                                                                        "additionalProperties": false,
+                                                                        "type": "object",
+                                                                        "properties": {
+                                                                            "i18n": {
+                                                                                "type": "string",
+                                                                                "minLength": 1,
+                                                                                "maxLength": 300,
+                                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                            }
+                                                                        },
+                                                                        "required": [
+                                                                            "i18n"
+                                                                        ]
+                                                                    }
+                                                                ]
+                                                            },
+                                                            "title__i18n": {
                                                                 "type": "string",
                                                                 "minLength": 1,
-                                                                "maxLength": 255
+                                                                "maxLength": 300,
+                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                             },
                                                             "route": {
                                                                 "minLength": 1,
                                                                 "maxLength": 255,
@@ -7130,11 +8367,36 @@
                                         ],
                                         "type": "string"
                                     },
                                     "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
                                         "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "icon": {
                                         "type": "string",
                                         "minLength": 1,
@@ -7145,11 +8407,36 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "title": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "title__i18n": {
                                                     "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "route": {
                                                     "minLength": 1,
                                                     "maxLength": 255,
@@ -7172,21 +8459,71 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "header": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "header__i18n": {
+                                                    "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255,
-                                                    "type": "string"
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "pages": {
                                                     "type": "array",
                                                     "items": {
                                                         "type": "object",
                                                         "properties": {
                                                             "title": {
+                                                                "anyOf": [
+                                                                    {
+                                                                        "type": "string",
+                                                                        "minLength": 1,
+                                                                        "maxLength": 255
+                                                                    },
+                                                                    {
+                                                                        "additionalProperties": false,
+                                                                        "type": "object",
+                                                                        "properties": {
+                                                                            "i18n": {
+                                                                                "type": "string",
+                                                                                "minLength": 1,
+                                                                                "maxLength": 300,
+                                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                            }
+                                                                        },
+                                                                        "required": [
+                                                                            "i18n"
+                                                                        ]
+                                                                    }
+                                                                ]
+                                                            },
+                                                            "title__i18n": {
                                                                 "type": "string",
                                                                 "minLength": 1,
-                                                                "maxLength": 255
+                                                                "maxLength": 300,
+                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                             },
                                                             "route": {
                                                                 "minLength": 1,
                                                                 "maxLength": 255,
@@ -7253,11 +8590,36 @@
                                         ],
                                         "type": "string"
                                     },
                                     "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
                                         "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "icon": {
                                         "type": "string",
                                         "minLength": 1,
@@ -7268,11 +8630,36 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "title": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "title__i18n": {
                                                     "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "route": {
                                                     "minLength": 1,
                                                     "maxLength": 255,
@@ -7295,21 +8682,71 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "header": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "header__i18n": {
+                                                    "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255,
-                                                    "type": "string"
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "pages": {
                                                     "type": "array",
                                                     "items": {
                                                         "type": "object",
                                                         "properties": {
                                                             "title": {
+                                                                "anyOf": [
+                                                                    {
+                                                                        "type": "string",
+                                                                        "minLength": 1,
+                                                                        "maxLength": 255
+                                                                    },
+                                                                    {
+                                                                        "additionalProperties": false,
+                                                                        "type": "object",
+                                                                        "properties": {
+                                                                            "i18n": {
+                                                                                "type": "string",
+                                                                                "minLength": 1,
+                                                                                "maxLength": 300,
+                                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                            }
+                                                                        },
+                                                                        "required": [
+                                                                            "i18n"
+                                                                        ]
+                                                                    }
+                                                                ]
+                                                            },
+                                                            "title__i18n": {
                                                                 "type": "string",
                                                                 "minLength": 1,
-                                                                "maxLength": 255
+                                                                "maxLength": 300,
+                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                             },
                                                             "route": {
                                                                 "minLength": 1,
                                                                 "maxLength": 255,
@@ -7416,11 +8853,36 @@
                                         ],
                                         "type": "string"
                                     },
                                     "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
                                         "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "icon": {
                                         "type": "string",
                                         "minLength": 1,
@@ -7431,11 +8893,36 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "title": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "title__i18n": {
                                                     "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "route": {
                                                     "minLength": 1,
                                                     "maxLength": 255,
@@ -7458,21 +8945,71 @@
                                         "items": {
                                             "type": "object",
                                             "properties": {
                                                 "header": {
+                                                    "anyOf": [
+                                                        {
+                                                            "type": "string",
+                                                            "minLength": 1,
+                                                            "maxLength": 255
+                                                        },
+                                                        {
+                                                            "additionalProperties": false,
+                                                            "type": "object",
+                                                            "properties": {
+                                                                "i18n": {
+                                                                    "type": "string",
+                                                                    "minLength": 1,
+                                                                    "maxLength": 300,
+                                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                }
+                                                            },
+                                                            "required": [
+                                                                "i18n"
+                                                            ]
+                                                        }
+                                                    ]
+                                                },
+                                                "header__i18n": {
+                                                    "type": "string",
                                                     "minLength": 1,
-                                                    "maxLength": 255,
-                                                    "type": "string"
+                                                    "maxLength": 300,
+                                                    "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                 },
                                                 "pages": {
                                                     "type": "array",
                                                     "items": {
                                                         "type": "object",
                                                         "properties": {
                                                             "title": {
+                                                                "anyOf": [
+                                                                    {
+                                                                        "type": "string",
+                                                                        "minLength": 1,
+                                                                        "maxLength": 255
+                                                                    },
+                                                                    {
+                                                                        "additionalProperties": false,
+                                                                        "type": "object",
+                                                                        "properties": {
+                                                                            "i18n": {
+                                                                                "type": "string",
+                                                                                "minLength": 1,
+                                                                                "maxLength": 300,
+                                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                                            }
+                                                                        },
+                                                                        "required": [
+                                                                            "i18n"
+                                                                        ]
+                                                                    }
+                                                                ]
+                                                            },
+                                                            "title__i18n": {
                                                                 "type": "string",
                                                                 "minLength": 1,
-                                                                "maxLength": 255
+                                                                "maxLength": 300,
+                                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                             },
                                                             "route": {
                                                                 "minLength": 1,
                                                                 "maxLength": 255,
@@ -7524,16 +9061,66 @@
                     "items": {
                         "type": "object",
                         "properties": {
                             "name": {
+                                "anyOf": [
+                                    {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 255
+                                    },
+                                    {
+                                        "additionalProperties": false,
+                                        "type": "object",
+                                        "properties": {
+                                            "i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                            }
+                                        },
+                                        "required": [
+                                            "i18n"
+                                        ]
+                                    }
+                                ]
+                            },
+                            "name__i18n": {
+                                "type": "string",
                                 "minLength": 1,
-                                "maxLength": 255,
-                                "type": "string"
+                                "maxLength": 300,
+                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                             },
                             "description": {
+                                "anyOf": [
+                                    {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 1000
+                                    },
+                                    {
+                                        "additionalProperties": false,
+                                        "type": "object",
+                                        "properties": {
+                                            "i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                            }
+                                        },
+                                        "required": [
+                                            "i18n"
+                                        ]
+                                    }
+                                ]
+                            },
+                            "description__i18n": {
+                                "type": "string",
                                 "minLength": 1,
-                                "maxLength": 1000,
-                                "type": "string"
+                                "maxLength": 300,
+                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                             },
                             "expression": {
                                 "type": "string"
                             },
@@ -7733,16 +9320,67 @@
                     "items": {
                         "type": "object",
                         "properties": {
                             "name": {
+                                "anyOf": [
+                                    {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 255
+                                    },
+                                    {
+                                        "additionalProperties": false,
+                                        "type": "object",
+                                        "properties": {
+                                            "i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                            }
+                                        },
+                                        "required": [
+                                            "i18n"
+                                        ]
+                                    }
+                                ]
+                            },
+                            "name__i18n": {
+                                "type": "string",
                                 "minLength": 1,
-                                "maxLength": 255,
-                                "pattern": "^[a-zA-Z0-9-_ ]+$",
-                                "type": "string"
+                                "maxLength": 300,
+                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                             },
                             "description": {
-                                "type": "string"
+                                "anyOf": [
+                                    {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 1000
+                                    },
+                                    {
+                                        "additionalProperties": false,
+                                        "type": "object",
+                                        "properties": {
+                                            "i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                            }
+                                        },
+                                        "required": [
+                                            "i18n"
+                                        ]
+                                    }
+                                ]
                             },
+                            "description__i18n": {
+                                "type": "string",
+                                "minLength": 1,
+                                "maxLength": 300,
+                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                            },
                             "anonymousAllowed": {
                                 "type": "boolean"
                             },
                             "defaultGrants": {
@@ -7779,16 +9417,67 @@
                     "items": {
                         "type": "object",
                         "properties": {
                             "name": {
+                                "anyOf": [
+                                    {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 255
+                                    },
+                                    {
+                                        "additionalProperties": false,
+                                        "type": "object",
+                                        "properties": {
+                                            "i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                            }
+                                        },
+                                        "required": [
+                                            "i18n"
+                                        ]
+                                    }
+                                ]
+                            },
+                            "name__i18n": {
+                                "type": "string",
                                 "minLength": 1,
-                                "maxLength": 255,
-                                "pattern": "^[a-zA-Z0-9-_ ]+$",
-                                "type": "string"
+                                "maxLength": 300,
+                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                             },
                             "description": {
-                                "type": "string"
+                                "anyOf": [
+                                    {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 1000
+                                    },
+                                    {
+                                        "additionalProperties": false,
+                                        "type": "object",
+                                        "properties": {
+                                            "i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                            }
+                                        },
+                                        "required": [
+                                            "i18n"
+                                        ]
+                                    }
+                                ]
                             },
+                            "description__i18n": {
+                                "type": "string",
+                                "minLength": 1,
+                                "maxLength": 300,
+                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                            },
                             "category": {
                                 "default": "other",
                                 "enum": [
                                     "attachments",
@@ -7823,16 +9512,66 @@
                     "items": {
                         "type": "object",
                         "properties": {
                             "name": {
+                                "anyOf": [
+                                    {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 255
+                                    },
+                                    {
+                                        "additionalProperties": false,
+                                        "type": "object",
+                                        "properties": {
+                                            "i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                            }
+                                        },
+                                        "required": [
+                                            "i18n"
+                                        ]
+                                    }
+                                ]
+                            },
+                            "name__i18n": {
+                                "type": "string",
                                 "minLength": 1,
-                                "maxLength": 255,
-                                "type": "string"
+                                "maxLength": 300,
+                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                             },
                             "description": {
+                                "anyOf": [
+                                    {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 1000
+                                    },
+                                    {
+                                        "additionalProperties": false,
+                                        "type": "object",
+                                        "properties": {
+                                            "i18n": {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 300,
+                                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                            }
+                                        },
+                                        "required": [
+                                            "i18n"
+                                        ]
+                                    }
+                                ]
+                            },
+                            "description__i18n": {
+                                "type": "string",
                                 "minLength": 1,
-                                "maxLength": 1000,
-                                "type": "string"
+                                "maxLength": 300,
+                                "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                             },
                             "function": {
                                 "type": "string",
                                 "minLength": 1,
@@ -7970,16 +9709,66 @@
                                         "maxLength": 255,
                                         "pattern": "^[a-zA-Z0-9-_]+$"
                                     },
                                     "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "label": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "label__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "status": {
                                         "type": "object",
                                         "properties": {
@@ -8100,16 +9889,66 @@
                                         ],
                                         "type": "string"
                                     },
                                     "title": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "title__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "label": {
+                                        "anyOf": [
+                                            {
+                                                "type": "string",
+                                                "minLength": 1,
+                                                "maxLength": 255
+                                            },
+                                            {
+                                                "additionalProperties": false,
+                                                "type": "object",
+                                                "properties": {
+                                                    "i18n": {
+                                                        "type": "string",
+                                                        "minLength": 1,
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                                    }
+                                                },
+                                                "required": [
+                                                    "i18n"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "label__i18n": {
+                                        "type": "string",
                                         "minLength": 1,
-                                        "maxLength": 255,
-                                        "type": "string"
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                     },
                                     "status": {
                                         "type": "object",
                                         "properties": {
@@ -11247,9 +13086,10 @@
                                                 "properties": {
                                                     "i18n": {
                                                         "type": "string",
                                                         "minLength": 1,
-                                                        "maxLength": 300
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                     }
                                                 },
                                                 "required": [
                                                     "i18n"
@@ -11261,8 +13101,14 @@
                                                 "maxLength": 255
                                             }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "icon": {
                                         "type": "string"
                                     },
                                     "resource": {
@@ -11303,9 +13149,10 @@
                                                 "properties": {
                                                     "i18n": {
                                                         "type": "string",
                                                         "minLength": 1,
-                                                        "maxLength": 300
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                     }
                                                 },
                                                 "required": [
                                                     "i18n"
@@ -11317,8 +13164,14 @@
                                                 "maxLength": 255
                                             }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "icon": {
                                         "type": "string"
                                     },
                                     "resolver": {
@@ -11395,9 +13248,10 @@
                                                 "properties": {
                                                     "i18n": {
                                                         "type": "string",
                                                         "minLength": 1,
-                                                        "maxLength": 300
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                     }
                                                 },
                                                 "required": [
                                                     "i18n"
@@ -11409,8 +13263,14 @@
                                                 "maxLength": 255
                                             }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "resource": {
                                         "type": "string",
                                         "minLength": 1,
                                         "maxLength": 23,
@@ -11448,9 +13308,10 @@
                                                 "properties": {
                                                     "i18n": {
                                                         "type": "string",
                                                         "minLength": 1,
-                                                        "maxLength": 300
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                     }
                                                 },
                                                 "required": [
                                                     "i18n"
@@ -11462,8 +13323,14 @@
                                                 "maxLength": 255
                                             }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "resolver": {
                                         "oneOf": [
                                             {
                                                 "additionalProperties": false,
@@ -11537,9 +13404,10 @@
                                                 "properties": {
                                                     "i18n": {
                                                         "type": "string",
                                                         "minLength": 1,
-                                                        "maxLength": 300
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                     }
                                                 },
                                                 "required": [
                                                     "i18n"
@@ -11551,8 +13419,14 @@
                                                 "maxLength": 255
                                             }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "icon": {
                                         "type": "string"
                                     },
                                     "resource": {
@@ -11593,9 +13467,10 @@
                                                 "properties": {
                                                     "i18n": {
                                                         "type": "string",
                                                         "minLength": 1,
-                                                        "maxLength": 300
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                     }
                                                 },
                                                 "required": [
                                                     "i18n"
@@ -11607,8 +13482,14 @@
                                                 "maxLength": 255
                                             }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "icon": {
                                         "type": "string"
                                     },
                                     "resolver": {
@@ -11685,9 +13566,10 @@
                                                 "properties": {
                                                     "i18n": {
                                                         "type": "string",
                                                         "minLength": 1,
-                                                        "maxLength": 300
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                     }
                                                 },
                                                 "required": [
                                                     "i18n"
@@ -11699,8 +13581,14 @@
                                                 "maxLength": 255
                                             }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "resource": {
                                         "type": "string",
                                         "minLength": 1,
                                         "maxLength": 23,
@@ -11738,9 +13626,10 @@
                                                 "properties": {
                                                     "i18n": {
                                                         "type": "string",
                                                         "minLength": 1,
-                                                        "maxLength": 300
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                     }
                                                 },
                                                 "required": [
                                                     "i18n"
@@ -11752,8 +13641,14 @@
                                                 "maxLength": 255
                                             }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "resolver": {
                                         "oneOf": [
                                             {
                                                 "additionalProperties": false,
@@ -11827,9 +13722,10 @@
                                                 "properties": {
                                                     "i18n": {
                                                         "type": "string",
                                                         "minLength": 1,
-                                                        "maxLength": 300
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                     }
                                                 },
                                                 "required": [
                                                     "i18n"
@@ -11841,8 +13737,14 @@
                                                 "maxLength": 255
                                             }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "icon": {
                                         "type": "string"
                                     },
                                     "resource": {
@@ -11883,9 +13785,10 @@
                                                 "properties": {
                                                     "i18n": {
                                                         "type": "string",
                                                         "minLength": 1,
-                                                        "maxLength": 300
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                     }
                                                 },
                                                 "required": [
                                                     "i18n"
@@ -11897,8 +13800,14 @@
                                                 "maxLength": 255
                                             }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "icon": {
                                         "type": "string"
                                     },
                                     "resolver": {
@@ -11975,9 +13884,10 @@
                                                 "properties": {
                                                     "i18n": {
                                                         "type": "string",
                                                         "minLength": 1,
-                                                        "maxLength": 300
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                     }
                                                 },
                                                 "required": [
                                                     "i18n"
@@ -11989,8 +13899,14 @@
                                                 "maxLength": 255
                                             }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "resource": {
                                         "type": "string",
                                         "minLength": 1,
                                         "maxLength": 23,
@@ -12028,9 +13944,10 @@
                                                 "properties": {
                                                     "i18n": {
                                                         "type": "string",
                                                         "minLength": 1,
-                                                        "maxLength": 300
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                     }
                                                 },
                                                 "required": [
                                                     "i18n"
@@ -12042,8 +13959,14 @@
                                                 "maxLength": 255
                                             }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "resolver": {
                                         "oneOf": [
                                             {
                                                 "additionalProperties": false,
@@ -12117,9 +14040,10 @@
                                                 "properties": {
                                                     "i18n": {
                                                         "type": "string",
                                                         "minLength": 1,
-                                                        "maxLength": 300
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                     }
                                                 },
                                                 "required": [
                                                     "i18n"
@@ -12131,8 +14055,14 @@
                                                 "maxLength": 255
                                             }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "resource": {
                                         "type": "string",
                                         "minLength": 1,
                                         "maxLength": 23,
@@ -12170,9 +14100,10 @@
                                                 "properties": {
                                                     "i18n": {
                                                         "type": "string",
                                                         "minLength": 1,
-                                                        "maxLength": 300
+                                                        "maxLength": 300,
+                                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
                                                     }
                                                 },
                                                 "required": [
                                                     "i18n"
@@ -12184,8 +14115,14 @@
                                                 "maxLength": 255
                                             }
                                         ]
                                     },
+                                    "title__i18n": {
+                                        "type": "string",
+                                        "minLength": 1,
+                                        "maxLength": 300,
+                                        "pattern": "^[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)*$"
+                                    },
                                     "resolver": {
                                         "oneOf": [
                                             {
                                                 "additionalProperties": false,
@@ -12250,8 +14187,11 @@
                         "oneOf": [
                             {
                                 "type": "object",
                                 "properties": {
+                                    "key": {
+                                        "$ref": "#/definitions/ModuleKeySchema"
+                                    },
                                     "name": {
                                         "type": "string"
                                     },
                                     "description": {
@@ -12273,11 +14213,8 @@
                                         "type": "string",
                                         "minLength": 1,
                                         "maxLength": 255,
                                         "pattern": "^[a-zA-Z0-9-_]+$"
-                                    },
-                                    "key": {
-                                        "$ref": "#/definitions/ModuleKeySchema"
                                     }
                                 },
                                 "required": [
                                     "name",
@@ -12293,8 +14230,11 @@
                             },
                             {
                                 "type": "object",
                                 "properties": {
+                                    "key": {
+                                        "$ref": "#/definitions/ModuleKeySchema"
+                                    },
                                     "name": {
                                         "type": "string"
                                     },
                                     "description": {
@@ -12316,11 +14256,8 @@
                                         "type": "string",
                                         "minLength": 1,
                                         "maxLength": 255,
                                         "pattern": "^[a-zA-Z0-9-_]+$"
-                                    },
-                                    "key": {
-                                        "$ref": "#/definitions/ModuleKeySchema"
                                     }
                                 },
                                 "required": [
                                     "name",