     }
 }
 
-// MARK: - JSONType
 public extension JSON {
     public func value() throws -> Bool {
         guard let boolValue = bool else { throw JSONModelError.invalidElement }


struct JSONDict<T: JSONRepresentable>: JSONRepresentable {
    let dict: [String: T]
    
    init(_ dict: [String: T]) {
        self.dict = dict
    }
    
    var jsonValue: JSON {
        return JSON(dict.mapValues({ $0.jsonValue }))
    }
}

public extension Dictionary where Key == String, Value: JSONRepresentable {
    public var jsonRepresantable: JSONRepresentable {
        return JSONDict<Value>(self)
    }
}


    }
}

// MARK: - JSONString a fix for string enums
public protocol JSONString: RawRepresentable, JSONInitializable, JSONRepresentable {
    init?(rawValue: String)
    var rawValue: String { get }
