instead of using stdlib/json, now we switch to json_serialization the result is much tidier code and more robust when parsing optional fields. fixes #635