Act as an expert in JSON configurations for MediaWiki Flex Diagrams (DHTMLX Gantt). I will provide you with a shorthand string representing a project, its layers (Business, Application, Technology), their Person-Month (PM) efforts, date ranges, and milestones.
Your task is to parse this string and convert it into a strictly formatted JSON structure.
**Strict Formatting Rules:**
1. **Root Task:** Create a root parent task (id: 1) using the `Name(...)` provided. Give it `"color": "#8E44AD"` (purple) and `"open": true`.
2. **Layer Containers (Split Render):** Create container sub-tasks for Business (B), Application (A), and Technology (T). Label them as "Business layer (X PM)", etc. These containers must have `"parent": 1` and `"render": "split"` so their children display on the same line.
3. **Colored Task Bars:** Inside each split container, create a child task representing the full duration of that layer. Leave its `"text"` blank (`""`). Color code them:
* Business = `#F4D03F` (Yellow)
* Application = `#5DADE2` (Blue)
* Technology = `#58D68D` (Green)
4. **Milestones:** Map each milestone to its corresponding layer based on its prefix (e.g., B1 goes under Business, A1 under Application). Format them with `"type": "milestone"`, `"duration": 0`, and prepend a star symbol (★) to their `"text"` (e.g., `"★ B1 (Reqs Specs)"`).
5. **Dates & Durations:** Convert the `MM/YYYY` format to `01-MM-YYYY 00:00` (or the last day of the month for end dates, e.g., `31-10-2027 00:00`). Calculate the `"duration"` in days for the main tasks and colored task bars.
**Example Input:**
Name(Access portal to Virtual Campus services (Mobile App)), B(0.5):04/2026-07/2026, A(1):05/2026-10/2027, T(0.5):04/2026-10/2027, B1(Reqs Specs):05/2026, A1(Beta App):07/2026, A2(Public App V1):12/2026
**Example Output:**
{
"data": [
{
"id": 1,
"start_date": "01-04-2026 00:00",
"text": "Access portal to Virtual Campus services (Mobile App)",
"duration": 579,
"end_date": "31-10-2027 00:00",
"progress": 0,
"parent": 0,
"open": true,
"color": "#8E44AD"
},
{
"id": 2,
"text": "Business layer (0.5 PM)",
"parent": 1,
"render": "split",
"open": true
},
{
"id": 20,
"start_date": "01-04-2026 00:00",
"text": "",
"duration": 122,
"end_date": "31-07-2026 00:00",
"parent": 2,
"color": "#F4D03F"
},
{
"id": 21,
"start_date": "01-05-2026 00:00",
"text": "★ B1 (Reqs Specs)",
"duration": 0,
"type": "milestone",
"parent": 2
},
{
"id": 3,
"text": "Application layer (1 PM)",
"parent": 1,
"render": "split",
"open": true
},
{
"id": 30,
"start_date": "01-05-2026 00:00",
"text": "",
"duration": 549,
"end_date": "31-10-2027 00:00",
"parent": 3,
"color": "#5DADE2"
},
{
"id": 31,
"start_date": "01-07-2026 00:00",
"text": "★ A1 (Beta App)",
"duration": 0,
"type": "milestone",
"parent": 3
},
{
"id": 32,
"start_date": "01-12-2026 00:00",
"text": "★ A2 (Public App V1)",
"duration": 0,
"type": "milestone",
"parent": 3
},
{
"id": 4,
"text": "Technology layer (0.5 PM)",
"parent": 1,
"render": "split",
"open": true
},
{
"id": 40,
"start_date": "01-04-2026 00:00",
"text": "",
"duration": 579,
"end_date": "31-10-2027 00:00",
"parent": 4,
"color": "#58D68D"
}
],
"links": []
}
**Current Input to Process:**
[INSERT YOUR NEW SHORTHAND STRING HERE]