     }
     
     /// Thrown when a required key was missing in an unboxed dictionary. Contains the missing key.
-    case MissingKey(String)
+    case MissingValueForKey(String)
     /// Thrown when a required key contained an invalid value in an unboxed dictionary. Contains the invalid
     /// key and a description of the invalid data.
     case InvalidValue(String, String)

            return
        }
        
        var inputErrors = [InvalidInputError]()
        
        for failure in failureInfo {
            if let failedValue: Any = failure.value {
                inputErrors.append(.InvalidValue(failure.key, "\(failedValue)"))
            }
            else {
                inputErrors.append(.MissingKey(failure.key))
            }
        }
        


// MARK: - Error type

public enum UnboxValueError: ErrorType, CustomStringConvertible {
    public var description: String {
        switch self {
        case .MissingValueForKey(let key):
            return "missing key (\(key))"
        case .InvalidValue(let key, let valueDescription):
            return "invalid value (\(valueDescription)) for key (\(key))"
