There should be a way to handle other name for the field/class due to the compatibility reasons.
For example
@legacyName("B")
case class A(@legacyName("y") x: Int)
should parse all of
[
"A" : {
"x": 2
},
"B" : {
"x": 2
},
"A" : {
"y": 2
},
"B" : {
"y": 2
},
]