Gantt chart with three levels of groups

The code below is the source for this graph.

<?php
// Gantt chart with three levels of groups
require_once 'SVGGraph/autoloader.php';

$options = [
  'auto_fit' => true,
  'structure' => [
    'key' => 0, 'axis_text' => 1, 'value' => 2, 'end' => 3,
    'complete' => 'c',
    'group' => 'g',
  ],
  'bar_round' => 10,
  'show_data_labels' => true,
  'pad_right' => 30,
  'gantt_today' => false,
];

$values = [
  ['G0', 'Top-level group', 'g' => 'top'],
  ['G1', 'Sub-group 1', 'g' => 'level 1'],
  ['A0', 'A simple task', '2022-04-01', '2022-04-13', 'c' => 50],
  ['A2a', 'Testing', '2022-04-13', '2022-04-15'],
  ['G1a', 'Sub-sub-group', 'g' => 'l 2'],
  ['A1', 'Second task', '2022-04-05', '2022-04-20', 'c' => 20],
  ['A2', 'Testing', '2022-04-20', '2022-04-21'],
  ['G2', 'Sub-group 2', 'g' => 'level 1'],
  ['A3', 'Third task', '2022-05-02', '2022-05-17', 'c' => 60],
  ['G2a', 'Sub-sub-group', 'g' => 'l 2'],
  ['A4', 'Final task', '2022-05-16', '2022-05-20', 'c' => 78],
  ['A5', 'Testing', '2022-05-20', '2022-05-20'],
];

$graph = new Goat1000\SVGGraph\SVGGraph(670, 'auto', $options);
$graph->values($values);
$graph->colourRangeHexHSL(0, '#c50', '#c59');
$graph->colourRangeHexHSL(1, '#6a0', '#6a9');
$graph->render('GanttChart');

Please note: the source code above comes from a script used to generate one of the example graphs on the site. This is simply a wrapper page to apply highlighting and make the source code easier to read, so there is no content here to describe what the source code is doing.