I had tried this before posting this and it did not work for me, as you rightly pointed out that the code for transforming the json into elm data model was way more complex than using json decoders since I had to do a lot of branching/caseof/Maybe because of the very generic types. So, I reverted to the regular json decoder.
I understand the rationale behind removing dynamic update of records. I was just wondering, if this could be a core language feature like JSON.parse and JSON.stringify (in javascript), implemented as one of the core kernel modules, so that could produce a record as stated above, while we developers dont have that ability to create a dynamic record on the fly like that.