BUG-7996: Split JSONCodec into multiple implementations