{ "name": "campaign", "description": "Campaign with URL pattern and optional content", "tags": [ "marketing", "config" ], "category": "config", "fields": { "css": { "type": "string", "description": "Optional CSS", "widget": "code", "codeLanguage": "css" }, "html": { "type": "html", "description": "HTML content" }, "insertHtml": { "type": "string", "required": true, "default": "beforeend", "enum": [ "afterbegin", "beforeend", "afterend", "beforebegin", "replace" ], "description": "Position relative to selector" }, "javascript": { "type": "string", "description": "Optional JavaScript", "widget": "code", "codeLanguage": "javascript" }, "medias": { "type": "array", "items": { "type": "reference", "collection": "img" }, "description": "Media (images)" }, "selector": { "type": "string", "required": true, "description": "CSS selector where content is inserted" }, "timeUntil": { "type": "datetime", "description": "Time limit (until when the campaign runs)" }, "urlPattern": { "type": "string", "required": true, "description": "URL pattern (e.g. regex) for campaign usage" } } }