Interface to implement custom mapping logic between Json and class of type T. Should be implemented on class companion object.
Maps Json representation to value of type T
Maps value of type T to Json representation.