title: Why List<dynamic> and not List<Map<String,dynamic>>?
body: <p>I have a small program that manipulates some JSON data with this structure:</p>
  
  <pre><code>{
      "categories": [{
          "id": 0,
          "title": "cat1"
      }],
      "drinks": [{
          "categoryId": 0,
          "image": "image",
          "title": "title",
          "text": "text"
      }]
  
  }
  </code></pre>
  
  <p>Everything works well if I code using dynamic types or the <em>var</em> keyword but I am getting the following error  when I am declaring types. </p>
  
  <p><code>'List&lt;dynamic&gt;' is not a subtype of type 'List&lt;Map&lt;String, dynamic&gt;&gt;'</code>.</p>
  
  <p>Here is that program:</p>
  
  <pre><code>import 'dart:convert';
  
  main(List&lt;String&gt; args) {
    String source = ''' {
      "categories": [{
        "id": 0,
        "title": "cat1"
      }],
      "drinks": [{
        "categoryId": 0,
        "image": "image",
        "title": "title",
        "text": "text"
      }]
    }''';
  
    var json = jsonDecode(source);
  
    // Dynamic types, works ok!
    var categories = json['categories'];
    var title = categories[0]['title'];
    var id = categories[0]['id'];
    print('$title with $id');
  
  
    // Explicit types, error!
    List&lt;Map&lt;String,dynamic&gt;&gt; categories2 =  json['categories'];
    String title2 = categories2[0]['title'];
    int id2 = categories2[0]['id'];
    print('$title2 with $id2');
  
  }
  </code></pre>
  
  <p>Why I am getting this error?  <code>categories</code> is of <code>List&lt;dynamic&gt;</code> type but why it's not a <code>List&lt;Map&lt;String,dynamic&gt;&gt;</code>? </p>