title: Type 'MenuItem' does not conform to protocol 'Decodable'
body: <p>Why am I getting the error: Type 'MenuItem' does not conform to protocol 'Decodable'? It was working before. One of the things I changed was modifiers from [String]? to [Modifier]? Is that producing the error? If so, why? Stackoverflow wants me to keep saying things because it's too little description relative to the amount of code that I displayed below. Still needing to add text.</p>
  
  <pre><code>struct MenuItem: Codable {
  
  let itemId: String
  let name: String
  var modifiers: [Modifier]?
  var photoUrl: String?
  var quantity: Int
  var unitPrice: Int
  var sizeAddOnPrice: Int
  var toppingsAddOnPrice: Int
  var totalPrice: Int
  var totalModifiersPrice: Int
  let description: String
  var size: String
  var toppings: [String]?
  let category: String
  
  init(itemId: String, name: String, modifiers: [Modifier]?, photoUrl: String?, quantity: Int, unitPrice: Int, sizeAddOnPrice: Int, toppingsAddOnPrice: Int, totalPrice: Int, totalModifiersPrice: Int, description: String, size: String, toppings: [String]?, category: String) {
      self.itemId = itemId
      self.name = name
      self.modifiers = modifiers
      self.photoUrl = photoUrl
      self.quantity = quantity
      self.unitPrice = unitPrice
      self.sizeAddOnPrice = sizeAddOnPrice
      self.toppingsAddOnPrice = toppingsAddOnPrice
      self.totalPrice = totalPrice
      self.totalModifiersPrice = totalModifiersPrice
      self.description = description
      self.size = size
      self.toppings = toppings
      self.category = category
  }
  
  init?(itemId: String, payload: JSON) {
      guard
          let name = payload[ParamKey.name].string,
          let photoUrl = payload[ParamKey.photoUrl].string,
          let description = payload[ParamKey.description].string,
          let category = payload[ParamKey.categoryName].string,
          let unitPrice = payload[ParamKey.basePrice].int,
          let size = payload[ParamKey.size].string
          else { return nil }
      self.itemId = itemId
      self.name = name
      self.photoUrl = photoUrl
      self.description = description
      self.category = category
      self.unitPrice = unitPrice
      self.size = size
      self.sizeAddOnPrice = 0
      self.toppings = nil
      self.toppingsAddOnPrice = 0
      self.totalPrice = (unitPrice + sizeAddOnPrice + toppingsAddOnPrice) * quantity
      self.totalModifiersPrice = (sizeAddOnPrice + toppingsAddOnPrice) * 2
      self.quantity = 1
      self.modifiers = payload[ParamKey.modifiers].arrayObject as? [Modifier]
      }
  }
  </code></pre>