Plug-in devs: include page setting?

I think if I understand this right, it’s related to some challenges I’ve had in my theme that led to this template code that I barely remember writing in some kind of fugue state:

  {{ range $menuitem := .Site.Params.Menu }}
		  <li>
        <a class="{{ if eq .URL $url }}active{{ end }}"
           href="{{ index $menuitem "url" }}">
          {{ index $menuitem "name" }}
        </a>
		  </li>
		{{ end }}
    {{ with site.Menus.main }}
      {{ range . }}
        <a class="{{ if eq .URL $url }}active{{ end }}" href="{{ .URL }}">
          {{ .Name }}
        </a>
      {{ end }}
    {{ end }}

I did this to support Micro.blog generated pages while allowing my site config to set other menu items:

 "menu": [
      {
        "name": "Now",
        "url": "/categories/now"
      },
      {
        "name": "Books",
        "url": "/bookshelf"
      },
      {
        "name": "Photos",
        "url": "/categories/photoblogging"
      },
      {
         "name": "Archive",
         "url": "/archive"
      }
    ]

I have never loved this solution, and I also seem to remember trying to not override things quite this way, but having trouble plugging into where Micro.blog wanted me to store this information.

Overall, I think there should be something similar to the setup for custom JS or custom CSS:

{{- if isset .Site.Params "customjs" -}}
  {{- range .Site.Params.customJS }}
      <script src="{{ $.Site.BaseURL }}{{ . }}"></script>
  {{- end }}
{{- end }}

So a plugin can supply something that is merged into .Site.Params.customPages and perhaps there’s something else like .Site.Params.Pages for MB generated pages. This makes both sets of data easy to add to and easy to access for theme developers to support.