 
   var jsonDescription: JSON { get {
     return JSON.jDictionary([
-      "event_name" : JSON.jString(self.eventName.rawValue),
-      "event_type" : JSON.jString(self.eventType.rawValue),
-      "subject" : self.subject.jsonDescription,
-      "timestamp" : JSON.jNumber(NSNumber(value: round(Date().timeIntervalSince1970) as Double)),
+      JSONKeys.EventName.rawValue : JSON.jString(self.eventName.rawValue),
+      JSONKeys.EventType.rawValue : JSON.jString(self.eventType.rawValue),
+      JSONKeys.Subject.rawValue : self.subject.jsonDescription,
+      JSONKeys.Timestamp.rawValue : JSON.jNumber(NSNumber(value: round(Date().timeIntervalSince1970) as Double)),
     ])
   }}
 


import Foundation

public protocol EventReporterSubject : CustomStringConvertible {
  var jsonDescription: JSON { get }
  var subSubjects: [EventReporterSubject] { get }


  var jsonDescription: JSON { get {
    return JSON.jDictionary([
      JSONKeys.EventName.rawValue : JSON.jString(EventName.Log.rawValue),
      JSONKeys.EventType.rawValue : JSON.jString(EventType.Discrete.rawValue),
      JSONKeys.Level.rawValue : JSON.jString(self.levelString),
      JSONKeys.Subject.rawValue : JSON.jString(self.logString),
      JSONKeys.Timestamp.rawValue : JSON.jNumber(NSNumber(value: round(Date().timeIntervalSince1970) as Double)),
    ])
  }}

