Ranging over nested array from JSON data

Your data structure is nested three deep (outer, inner-a, inner-b), so you need an additional range block.

{{ $modifiers := site.Data.modifiers_metadata }}

{{ range $modifiers }}
  <h2>{{ .GroupName }}</h2>
  <table>
    <tbody>
        <tr>
          <th colspan="2">{{ .GroupName }}</th>
        </tr>
      {{ range .ModifierGroups }}
        {{ range $key, $_ := . }}
          <tr>
            <td>{{ $key }}</td>
            {{ range . }}
              {{ range $k, $v := . }}
                <td>
                  <img src="{{ $v }}" alt="{{ $k }}">
                </td>
              {{ end }}
            {{ end }}
          </tr>
        {{ end }}
      {{ end }}
    </tbody>
  </table>
{{ end }}