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

    }
}

public protocol JSONString: RawRepresentable, JSONInitializable, JSONRepresentable {
    init?(rawValue: String)
    var rawValue: String { get }

    // MARK: - Throwable methods
    public func object(for key: PropertyType) throws -> JSONObject<PropertyType> {
        do {
            return try JSONObject(json: self[key])
        } catch let error as JSONModelError {
            throw JSONModelError.invalidValueFor(key: key.rawValue, error)
        }
