     }
 
     public func makeNode(context: Context = EmptyNode) throws -> Node {
+        
         return try Node(node: [
             "\(idKey)": id,
             "\(type(of: self).left.name)\(idKey)": leftId,

    }

    public init(node: Node, in context: Context) throws {
        id = try node.extract("id")

        let firstKey = "\(First.name)_\(idKey)"
        let secondKey = "\(Second.name)_\(idKey)"


        }
    }

    public var id: Node?
    public var leftId: Node?
    public var rightId: Node?
    public var idKey: String?

    public init(_ first: Entity, _ second: Entity) {
        if First.self == type(of: self).left {
