title: Swift 4 Decodable with keys not known until decoding time
body: <p>How does the Swift 4 Decodable protocol cope with a dictionary containing a key whose name is not known until runtime? For example:</p>
  
  <pre><code>  [
      {
        "categoryName": "Trending",
        "Trending": [
          {
            "category": "Trending",
            "trailerPrice": "",
            "isFavourit": null,
            "isWatchlist": null
          }
        ]
      },
      {
        "categoryName": "Comedy",
        "Comedy": [
          {
            "category": "Comedy",
            "trailerPrice": "",
            "isFavourit": null,
            "isWatchlist": null
          }
        ]
      }
    ]
  </code></pre>
  
  <p>Here we have an array of dictionaries; the first has keys <code>categoryName</code> and <code>Trending</code>, while the second has keys <code>categoryName</code> and <code>Comedy</code>. The value of the <code>categoryName</code> key tells me the name of the second key. How do I express that using Decodable?</p>