 //  Created by Ahmed Onawale on 2/4/17.
 //  Copyright © 2017 Ahmed Onawale. All rights reserved.
 //
-
-/// This protocol outlines the requirement of a type that
-/// can be converted to a `JSON`
-public protocol JSONRepresentable {
-    /// Call this method to get a `JSON` representation of `Self`
-    /// - Returns: The json representation of `Self`
-    func toJSON() -> JSON
-}
-
-/// This protocol outlines the requirement of a type that
-/// can created from a `JSON`
-public protocol JSONInitializable {
-    /// Required initializer
-    /// - Parameters:
-    ///  - id: An ID struct uniquely identifying `Self`
-    ///  - hash: A dictionary of [String: Any]
-    init(id: ID, hash: JSON) throws
-}
 
 /// Unique Record identifier.
 /// Conforms to Hashable protocol

    return lhs.value == rhs.value
}

/// Record
/// This protocol outline requirements for
/// a type that can be managed by the `Store`

    /// A unique identifier for a `Self`
    var id: ID? { get }
    /// The type class to be used to make network request
    /// for `Self`. Default value is the `RESTAdapter`.
    static var adapterType: Adapter.Type { get }
    /// The type class to be used to serializer and normalize
    /// `Self`. Default value is the `JSONSerializer`.
