title: What do nested object literals mean in grunt.js files?
body: <p>I'm having trouble understanding nesting that sometimes shows up in <code>grunt.js</code> files. In the following example, what do nested objects like <code>concat.dist</code> and <code>min.dist</code> mean? Is the <code>dist</code> key referencing another named task or is it simply a configuration object? What exactly gets called when executing the <code>concat</code> and <code>min</code> tasks?</p>
  
  <pre><code>module.exports = function (grunt) {
    grunt.initConfig({
      // …
      concat: {
        dist: {
          src: ["&lt;banner:meta.banner&gt;", "&lt;file_strip_banner:lib/main.js&gt;"],
          dest: "dist/main.js",
        }
      },
      min: {
        dist: {
          src: ["&lt;banner:meta.banner&gt;", "&lt;config:concat.dist.dest&gt;"],
          dest: "dist/main.min.js",
        }
      },
      // …
    });
  
    // …
    grunt.registerTask("default", "lint qunit concat min");
  };
  </code></pre>