diff --git a/base/cplusplus/test/inputs/json/misc/050b0.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/050b0.json/default/quicktype.hpp
index 3e3ca67..68e8dd4 100644
--- a/base/cplusplus/test/inputs/json/misc/050b0.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/050b0.json/default/quicktype.hpp
@@ -286,6 +286,7 @@ namespace quicktype {
     inline void from_json(const json & j, OtherName& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_name(j.at("name").get<std::string>());
+        j.at("note");
         x.set_note(get_stack_optional<std::string>(j, "note"));
     }
 
@@ -317,6 +318,7 @@ namespace quicktype {
         x.set_links(j.at("links").get<std::vector<Link>>());
         x.set_name(j.at("name").get<std::string>());
         x.set_other_names(j.at("other_names").get<std::vector<OtherName>>());
+        j.at("superseded_by");
         x.set_superseded_by(get_stack_optional<std::string>(j, "superseded_by"));
         x.set_text(j.at("text").get<std::vector<Text>>());
     }
diff --git a/base/cplusplus/test/inputs/json/misc/0e0c2.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/0e0c2.json/default/quicktype.hpp
index 1d8a59c..39718f3 100644
--- a/base/cplusplus/test/inputs/json/misc/0e0c2.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/0e0c2.json/default/quicktype.hpp
@@ -536,6 +536,7 @@ namespace quicktype {
         x.set_language(j.at("language").get<ResultLanguage>());
         x.set_release_date(j.at("release_date").get<std::string>());
         x.set_stars(j.at("stars").get<int64_t>());
+        j.at("tags");
         x.set_tags(get_stack_optional<std::vector<nlohmann::json>>(j, "tags"));
         x.set_title(j.at("title").get<std::string>());
         x.set_videos(j.at("videos").get<std::vector<Video>>());
diff --git a/base/cplusplus/test/inputs/json/misc/10be4.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/10be4.json/default/quicktype.hpp
index 832e22c..6bd02fa 100644
--- a/base/cplusplus/test/inputs/json/misc/10be4.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/10be4.json/default/quicktype.hpp
@@ -286,6 +286,7 @@ namespace quicktype {
     inline void from_json(const json & j, OtherName& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_name(j.at("name").get<std::string>());
+        j.at("note");
         x.set_note(get_stack_optional<std::string>(j, "note"));
     }
 
@@ -317,6 +318,7 @@ namespace quicktype {
         x.set_links(j.at("links").get<std::vector<Link>>());
         x.set_name(j.at("name").get<std::string>());
         x.set_other_names(j.at("other_names").get<std::vector<OtherName>>());
+        j.at("superseded_by");
         x.set_superseded_by(get_stack_optional<std::string>(j, "superseded_by"));
         x.set_text(j.at("text").get<std::vector<Text>>());
     }
diff --git a/base/cplusplus/test/inputs/json/misc/1b409.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/1b409.json/default/quicktype.hpp
index 1cf7365..5a29d4d 100644
--- a/base/cplusplus/test/inputs/json/misc/1b409.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/1b409.json/default/quicktype.hpp
@@ -473,9 +473,12 @@ namespace quicktype {
         x.set_namemod(j.at("namemod").get<Namemod>());
         x.set_nickname(j.at("nickname").get<std::string>());
         x.set_osid(j.at("osid").get<std::string>());
+        j.at("pvsid");
         x.set_pvsid(get_stack_optional<std::string>(j, "pvsid"));
         x.set_sortname(j.at("sortname").get<std::string>());
+        j.at("twitterid");
         x.set_twitterid(get_stack_optional<std::string>(j, "twitterid"));
+        j.at("youtubeid");
         x.set_youtubeid(get_stack_optional<std::string>(j, "youtubeid"));
     }
 
@@ -511,6 +514,7 @@ namespace quicktype {
         x.set_enddate(j.at("enddate").get<std::string>());
         x.set_extra(j.at("extra").get<Extra>());
         x.set_id(j.at("id").get<int64_t>());
+        j.at("leadership_title");
         x.set_leadership_title(get_stack_optional<std::string>(j, "leadership_title"));
         x.set_party(j.at("party").get<Party>());
         x.set_person(j.at("person").get<Person>());
diff --git a/base/cplusplus/test/inputs/json/misc/27332.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/27332.json/default/quicktype.hpp
index c5f3a1b..0c0bfe5 100644
--- a/base/cplusplus/test/inputs/json/misc/27332.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/27332.json/default/quicktype.hpp
@@ -862,7 +862,9 @@ namespace quicktype {
         x.set_approved_by(get_untyped(j, "approved_by"));
         x.set_archived(j.at("archived").get<bool>());
         x.set_author(j.at("author").get<std::string>());
+        j.at("author_flair_css_class");
         x.set_author_flair_css_class(get_stack_optional<std::string>(j, "author_flair_css_class"));
+        j.at("author_flair_text");
         x.set_author_flair_text(get_stack_optional<std::string>(j, "author_flair_text"));
         x.set_banned_at_utc(get_untyped(j, "banned_at_utc"));
         x.set_banned_by(get_untyped(j, "banned_by"));
@@ -873,6 +875,7 @@ namespace quicktype {
         x.set_contest_mode(j.at("contest_mode").get<bool>());
         x.set_created(j.at("created").get<double>());
         x.set_created_utc(j.at("created_utc").get<double>());
+        j.at("distinguished");
         x.set_distinguished(get_stack_optional<std::string>(j, "distinguished"));
         x.set_domain(j.at("domain").get<Domain>());
         x.set_downs(j.at("downs").get<int64_t>());
@@ -884,9 +887,12 @@ namespace quicktype {
         x.set_is_self(j.at("is_self").get<bool>());
         x.set_is_video(j.at("is_video").get<bool>());
         x.set_likes(get_untyped(j, "likes"));
+        j.at("link_flair_css_class");
         x.set_link_flair_css_class(get_stack_optional<std::string>(j, "link_flair_css_class"));
+        j.at("link_flair_text");
         x.set_link_flair_text(get_stack_optional<std::string>(j, "link_flair_text"));
         x.set_locked(j.at("locked").get<bool>());
+        j.at("media");
         x.set_media(get_stack_optional<Media>(j, "media"));
         x.set_media_embed(j.at("media_embed").get<MediaEmbed>());
         x.set_mod_reports(j.at("mod_reports").get<std::vector<nlohmann::json>>());
@@ -902,9 +908,11 @@ namespace quicktype {
         x.set_report_reasons(get_untyped(j, "report_reasons"));
         x.set_saved(j.at("saved").get<bool>());
         x.set_score(j.at("score").get<int64_t>());
+        j.at("secure_media");
         x.set_secure_media(get_stack_optional<Media>(j, "secure_media"));
         x.set_secure_media_embed(j.at("secure_media_embed").get<MediaEmbed>());
         x.set_selftext(j.at("selftext").get<std::string>());
+        j.at("selftext_html");
         x.set_selftext_html(get_stack_optional<std::string>(j, "selftext_html"));
         x.set_spoiler(j.at("spoiler").get<bool>());
         x.set_stickied(j.at("stickied").get<bool>());
@@ -914,7 +922,9 @@ namespace quicktype {
         x.set_subreddit_type(j.at("subreddit_type").get<SubredditType>());
         x.set_suggested_sort(get_untyped(j, "suggested_sort"));
         x.set_thumbnail(j.at("thumbnail").get<std::string>());
+        j.at("thumbnail_height");
         x.set_thumbnail_height(get_stack_optional<int64_t>(j, "thumbnail_height"));
+        j.at("thumbnail_width");
         x.set_thumbnail_width(get_stack_optional<int64_t>(j, "thumbnail_width"));
         x.set_title(j.at("title").get<std::string>());
         x.set_ups(j.at("ups").get<int64_t>());
diff --git a/base/cplusplus/test/inputs/json/misc/29f47.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/29f47.json/default/quicktype.hpp
index 264563e..797b4f9 100644
--- a/base/cplusplus/test/inputs/json/misc/29f47.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/29f47.json/default/quicktype.hpp
@@ -809,6 +809,7 @@ namespace quicktype {
         x.set_secure_media(get_untyped(j, "secure_media"));
         x.set_secure_media_embed(j.at("secure_media_embed").get<MediaEmbed>());
         x.set_selftext(j.at("selftext").get<std::string>());
+        j.at("selftext_html");
         x.set_selftext_html(get_stack_optional<std::string>(j, "selftext_html"));
         x.set_spoiler(j.at("spoiler").get<bool>());
         x.set_stickied(j.at("stickied").get<bool>());
@@ -816,9 +817,12 @@ namespace quicktype {
         x.set_subreddit_id(j.at("subreddit_id").get<SubredditId>());
         x.set_subreddit_name_prefixed(j.at("subreddit_name_prefixed").get<SubredditNamePrefixed>());
         x.set_subreddit_type(j.at("subreddit_type").get<SubredditType>());
+        j.at("suggested_sort");
         x.set_suggested_sort(get_stack_optional<std::string>(j, "suggested_sort"));
         x.set_thumbnail(j.at("thumbnail").get<std::string>());
+        j.at("thumbnail_height");
         x.set_thumbnail_height(get_stack_optional<int64_t>(j, "thumbnail_height"));
+        j.at("thumbnail_width");
         x.set_thumbnail_width(get_stack_optional<int64_t>(j, "thumbnail_width"));
         x.set_title(j.at("title").get<std::string>());
         x.set_ups(j.at("ups").get<int64_t>());
diff --git a/base/cplusplus/test/inputs/json/misc/2d4e2.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/2d4e2.json/default/quicktype.hpp
index 11e5a96..751ec76 100644
--- a/base/cplusplus/test/inputs/json/misc/2d4e2.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/2d4e2.json/default/quicktype.hpp
@@ -506,7 +506,9 @@ namespace quicktype {
         x.set_osid(j.at("osid").get<std::string>());
         x.set_pvsid(j.at("pvsid").get<std::string>());
         x.set_sortname(j.at("sortname").get<std::string>());
+        j.at("twitterid");
         x.set_twitterid(get_stack_optional<std::string>(j, "twitterid"));
+        j.at("youtubeid");
         x.set_youtubeid(get_stack_optional<std::string>(j, "youtubeid"));
     }
 
@@ -534,6 +536,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, Object& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("caucus");
         x.set_caucus(get_stack_optional<Party>(j, "caucus"));
         x.set_congress_numbers(j.at("congress_numbers").get<std::vector<int64_t>>());
         x.set_current(j.at("current").get<bool>());
@@ -542,6 +545,7 @@ namespace quicktype {
         x.set_enddate(j.at("enddate").get<std::string>());
         x.set_extra(j.at("extra").get<Extra>());
         x.set_id(j.at("id").get<int64_t>());
+        j.at("leadership_title");
         x.set_leadership_title(get_stack_optional<std::string>(j, "leadership_title"));
         x.set_party(j.at("party").get<Party>());
         x.set_person(j.at("person").get<Person>());
diff --git a/base/cplusplus/test/inputs/json/misc/32431.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/32431.json/default/quicktype.hpp
index c966edb..3f48e48 100644
--- a/base/cplusplus/test/inputs/json/misc/32431.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/32431.json/default/quicktype.hpp
@@ -399,14 +399,17 @@ namespace quicktype {
         x.set_cdi(get_untyped(j, "cdi"));
         x.set_code(j.at("code").get<std::string>());
         x.set_detail(j.at("detail").get<std::string>());
+        j.at("dmin");
         x.set_dmin(get_stack_optional<double>(j, "dmin"));
         x.set_felt(get_untyped(j, "felt"));
+        j.at("gap");
         x.set_gap(get_stack_optional<int64_t>(j, "gap"));
         x.set_ids(j.at("ids").get<std::string>());
         x.set_mag(j.at("mag").get<double>());
         x.set_mag_type(j.at("magType").get<MagType>());
         x.set_mmi(get_untyped(j, "mmi"));
         x.set_net(j.at("net").get<std::string>());
+        j.at("nst");
         x.set_nst(get_stack_optional<int64_t>(j, "nst"));
         x.set_place(j.at("place").get<std::string>());
         x.set_rms(j.at("rms").get<double>());
diff --git a/base/cplusplus/test/inputs/json/misc/32d5c.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/32d5c.json/default/quicktype.hpp
index ec5782c..7a257a6 100644
--- a/base/cplusplus/test/inputs/json/misc/32d5c.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/32d5c.json/default/quicktype.hpp
@@ -144,6 +144,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, TopLevelElement& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("BirthDate");
         x.set_birth_date(get_stack_optional<std::string>(j, "BirthDate"));
         x.set_birth_date_is_protected(j.at("BirthDateIsProtected").get<bool>());
         x.set_gender_type_id(j.at("GenderTypeID").get<int64_t>());
diff --git a/base/cplusplus/test/inputs/json/misc/337ed.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/337ed.json/default/quicktype.hpp
index 7c718b6..71cc929 100644
--- a/base/cplusplus/test/inputs/json/misc/337ed.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/337ed.json/default/quicktype.hpp
@@ -408,8 +408,11 @@ namespace quicktype {
 
     inline void from_json(const json & j, Result& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("cost_absolute");
         x.set_cost_absolute(get_stack_optional<int64_t>(j, "cost_absolute"));
+        j.at("cost_max");
         x.set_cost_max(get_stack_optional<int64_t>(j, "cost_max"));
+        j.at("cost_min");
         x.set_cost_min(get_stack_optional<int64_t>(j, "cost_min"));
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_custom_incomes(j.at("customIncomes").get<std::vector<CustomIncome>>());
@@ -417,25 +420,39 @@ namespace quicktype {
         x.set_direct_rep_costs_min(get_untyped(j, "direct_rep_costs_min"));
         x.set_end_date(j.at("end_date").get<std::string>());
         x.set_eur_sources_grants(j.at("eur_sources_grants").get<int64_t>());
+        j.at("eur_sources_grants_src");
         x.set_eur_sources_grants_src(get_stack_optional<std::string>(j, "eur_sources_grants_src"));
         x.set_eur_sources_procurement(j.at("eur_sources_procurement").get<int64_t>());
+        j.at("eur_sources_procurement_src");
         x.set_eur_sources_procurement_src(get_stack_optional<std::string>(j, "eur_sources_procurement_src"));
         x.set_id(j.at("id").get<std::string>());
         x.set_new_organisation(get_untyped(j, "new_organisation"));
+        j.at("no_clients");
         x.set_no_clients(get_stack_optional<std::string>(j, "no_clients"));
+        j.at("other_financial_information");
         x.set_other_financial_information(get_stack_optional<std::string>(j, "other_financial_information"));
+        j.at("other_sources_contributions");
         x.set_other_sources_contributions(get_stack_optional<int64_t>(j, "other_sources_contributions"));
+        j.at("other_sources_donation");
         x.set_other_sources_donation(get_stack_optional<int64_t>(j, "other_sources_donation"));
+        j.at("other_sources_total");
         x.set_other_sources_total(get_stack_optional<int64_t>(j, "other_sources_total"));
+        j.at("public_financing_infranational");
         x.set_public_financing_infranational(get_stack_optional<int64_t>(j, "public_financing_infranational"));
+        j.at("public_financing_national");
         x.set_public_financing_national(get_stack_optional<int64_t>(j, "public_financing_national"));
+        j.at("public_financing_total");
         x.set_public_financing_total(get_stack_optional<int64_t>(j, "public_financing_total"));
         x.set_representative(j.at("representative").get<std::string>());
         x.set_start_date(j.at("start_date").get<std::string>());
         x.set_status(j.at("status").get<Status>());
+        j.at("total_budget");
         x.set_total_budget(get_stack_optional<int64_t>(j, "total_budget"));
+        j.at("turnover_absolute");
         x.set_turnover_absolute(get_stack_optional<int64_t>(j, "turnover_absolute"));
+        j.at("turnover_max");
         x.set_turnover_max(get_stack_optional<int64_t>(j, "turnover_max"));
+        j.at("turnover_min");
         x.set_turnover_min(get_stack_optional<int64_t>(j, "turnover_min"));
         x.set_type(j.at("type").get<ResultType>());
         x.set_updated_at(j.at("updated_at").get<std::string>());
diff --git a/base/cplusplus/test/inputs/json/misc/34702.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/34702.json/default/quicktype.hpp
index 9012407..a97f45c 100644
--- a/base/cplusplus/test/inputs/json/misc/34702.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/34702.json/default/quicktype.hpp
@@ -372,10 +372,12 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_division(j.at("division").get<std::string>());
         x.set_fax(j.at("fax").get<double>());
+        j.at("fire_ban_r");
         x.set_fire_ban_r(get_stack_optional<FireBanR>(j, "fire_ban_r"));
         x.set_latitude(j.at("latitude").get<double>());
         x.set_local_govt(j.at("local_govt").get<std::string>());
         x.set_longitude(j.at("longitude").get<double>());
+        j.at("no");
         x.set_no(get_stack_optional<std::string>(j, "no"));
         x.set_phone(j.at("phone").get<double>());
         x.set_postcode(j.at("postcode").get<int64_t>());
@@ -384,6 +386,7 @@ namespace quicktype {
         x.set_station(j.at("station").get<std::string>());
         x.set_street(j.at("street").get<std::string>());
         x.set_suburb(j.at("suburb").get<std::string>());
+        j.at("type");
         x.set_type(get_stack_optional<PropertiesType>(j, "type"));
     }
 
diff --git a/base/cplusplus/test/inputs/json/misc/4d6fb.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/4d6fb.json/default/quicktype.hpp
index 4c2e027..9963a53 100644
--- a/base/cplusplus/test/inputs/json/misc/4d6fb.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/4d6fb.json/default/quicktype.hpp
@@ -895,6 +895,7 @@ namespace quicktype {
         x.set_link_flair_css_class(get_untyped(j, "link_flair_css_class"));
         x.set_link_flair_text(get_untyped(j, "link_flair_text"));
         x.set_locked(j.at("locked").get<bool>());
+        j.at("media");
         x.set_media(get_stack_optional<Media>(j, "media"));
         x.set_media_embed(j.at("media_embed").get<MediaEmbed>());
         x.set_mod_reports(j.at("mod_reports").get<std::vector<nlohmann::json>>());
@@ -910,6 +911,7 @@ namespace quicktype {
         x.set_report_reasons(get_untyped(j, "report_reasons"));
         x.set_saved(j.at("saved").get<bool>());
         x.set_score(j.at("score").get<int64_t>());
+        j.at("secure_media");
         x.set_secure_media(get_stack_optional<Media>(j, "secure_media"));
         x.set_secure_media_embed(j.at("secure_media_embed").get<MediaEmbed>());
         x.set_selftext(j.at("selftext").get<std::string>());
@@ -922,7 +924,9 @@ namespace quicktype {
         x.set_subreddit_type(j.at("subreddit_type").get<SubredditType>());
         x.set_suggested_sort(get_untyped(j, "suggested_sort"));
         x.set_thumbnail(j.at("thumbnail").get<std::string>());
+        j.at("thumbnail_height");
         x.set_thumbnail_height(get_stack_optional<int64_t>(j, "thumbnail_height"));
+        j.at("thumbnail_width");
         x.set_thumbnail_width(get_stack_optional<int64_t>(j, "thumbnail_width"));
         x.set_title(j.at("title").get<std::string>());
         x.set_ups(j.at("ups").get<int64_t>());
diff --git a/base/cplusplus/test/inputs/json/misc/570ec.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/570ec.json/default/quicktype.hpp
index 151ad0a..1b1d9a5 100644
--- a/base/cplusplus/test/inputs/json/misc/570ec.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/570ec.json/default/quicktype.hpp
@@ -267,6 +267,7 @@ namespace quicktype {
     inline void from_json(const json & j, OtherName& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_name(j.at("name").get<std::string>());
+        j.at("note");
         x.set_note(get_stack_optional<std::string>(j, "note"));
     }
 
diff --git a/base/cplusplus/test/inputs/json/misc/66121.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/66121.json/default/quicktype.hpp
index f956cbb..0d4756d 100644
--- a/base/cplusplus/test/inputs/json/misc/66121.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/66121.json/default/quicktype.hpp
@@ -284,6 +284,7 @@ namespace quicktype {
         x.set_links(j.at("links").get<std::vector<Link>>());
         x.set_name(j.at("name").get<std::string>());
         x.set_other_names(j.at("other_names").get<std::vector<nlohmann::json>>());
+        j.at("superseded_by");
         x.set_superseded_by(get_stack_optional<std::string>(j, "superseded_by"));
         x.set_text(j.at("text").get<std::vector<Text>>());
     }
diff --git a/base/cplusplus/test/inputs/json/misc/6de06.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/6de06.json/default/quicktype.hpp
index dda609e..e98b3f1 100644
--- a/base/cplusplus/test/inputs/json/misc/6de06.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/6de06.json/default/quicktype.hpp
@@ -900,7 +900,9 @@ namespace quicktype {
         x.set_approved_by(get_untyped(j, "approved_by"));
         x.set_archived(j.at("archived").get<bool>());
         x.set_author(j.at("author").get<std::string>());
+        j.at("author_flair_css_class");
         x.set_author_flair_css_class(get_stack_optional<std::string>(j, "author_flair_css_class"));
+        j.at("author_flair_text");
         x.set_author_flair_text(get_stack_optional<std::string>(j, "author_flair_text"));
         x.set_banned_at_utc(get_untyped(j, "banned_at_utc"));
         x.set_banned_by(get_untyped(j, "banned_by"));
@@ -922,9 +924,12 @@ namespace quicktype {
         x.set_is_self(j.at("is_self").get<bool>());
         x.set_is_video(j.at("is_video").get<bool>());
         x.set_likes(get_untyped(j, "likes"));
+        j.at("link_flair_css_class");
         x.set_link_flair_css_class(get_stack_optional<std::string>(j, "link_flair_css_class"));
+        j.at("link_flair_text");
         x.set_link_flair_text(get_stack_optional<std::string>(j, "link_flair_text"));
         x.set_locked(j.at("locked").get<bool>());
+        j.at("media");
         x.set_media(get_stack_optional<Media>(j, "media"));
         x.set_media_embed(j.at("media_embed").get<MediaEmbed>());
         x.set_mod_reports(j.at("mod_reports").get<std::vector<nlohmann::json>>());
@@ -940,9 +945,11 @@ namespace quicktype {
         x.set_report_reasons(get_untyped(j, "report_reasons"));
         x.set_saved(j.at("saved").get<bool>());
         x.set_score(j.at("score").get<int64_t>());
+        j.at("secure_media");
         x.set_secure_media(get_stack_optional<Media>(j, "secure_media"));
         x.set_secure_media_embed(j.at("secure_media_embed").get<MediaEmbed>());
         x.set_selftext(j.at("selftext").get<std::string>());
+        j.at("selftext_html");
         x.set_selftext_html(get_stack_optional<std::string>(j, "selftext_html"));
         x.set_spoiler(j.at("spoiler").get<bool>());
         x.set_stickied(j.at("stickied").get<bool>());
@@ -950,9 +957,12 @@ namespace quicktype {
         x.set_subreddit_id(j.at("subreddit_id").get<std::string>());
         x.set_subreddit_name_prefixed(j.at("subreddit_name_prefixed").get<std::string>());
         x.set_subreddit_type(j.at("subreddit_type").get<SubredditType>());
+        j.at("suggested_sort");
         x.set_suggested_sort(get_stack_optional<std::string>(j, "suggested_sort"));
         x.set_thumbnail(j.at("thumbnail").get<std::string>());
+        j.at("thumbnail_height");
         x.set_thumbnail_height(get_stack_optional<int64_t>(j, "thumbnail_height"));
+        j.at("thumbnail_width");
         x.set_thumbnail_width(get_stack_optional<int64_t>(j, "thumbnail_width"));
         x.set_title(j.at("title").get<std::string>());
         x.set_ups(j.at("ups").get<int64_t>());
diff --git a/base/cplusplus/test/inputs/json/misc/734ad.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/734ad.json/default/quicktype.hpp
index 457ce38..e47d597 100644
--- a/base/cplusplus/test/inputs/json/misc/734ad.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/734ad.json/default/quicktype.hpp
@@ -452,6 +452,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, Result& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("acronym");
         x.set_acronym(get_stack_optional<std::string>(j, "acronym"));
         x.set_activity_consult_committees(j.at("activity_consult_committees").get<std::string>());
         x.set_activity_eu_legislative(j.at("activity_eu_legislative").get<std::string>());
@@ -459,6 +460,7 @@ namespace quicktype {
         x.set_activity_high_level_groups(j.at("activity_high_level_groups").get<std::string>());
         x.set_activity_industry_forums(j.at("activity_industry_forums").get<std::string>());
         x.set_activity_inter_groups(j.at("activity_inter_groups").get<std::string>());
+        j.at("activity_other");
         x.set_activity_other(get_stack_optional<std::string>(j, "activity_other"));
         x.set_activity_relevant_comm(j.at("activity_relevant_comm").get<std::string>());
         x.set_be_office_country(get_stack_optional<std::string>(j, "be_office_country"));
@@ -476,10 +478,14 @@ namespace quicktype {
         x.set_goals(j.at("goals").get<std::string>());
         x.set_head(j.at("head").get<std::string>());
         x.set_head_office_country(j.at("head_office_country").get<std::string>());
+        j.at("head_office_lat");
         x.set_head_office_lat(get_stack_optional<double>(j, "head_office_lat"));
+        j.at("head_office_lon");
         x.set_head_office_lon(get_stack_optional<double>(j, "head_office_lon"));
         x.set_head_office_phone(j.at("head_office_phone").get<std::string>());
+        j.at("head_office_post_code");
         x.set_head_office_post_code(get_stack_optional<std::string>(j, "head_office_post_code"));
+        j.at("head_office_postbox");
         x.set_head_office_postbox(get_stack_optional<std::string>(j, "head_office_postbox"));
         x.set_head_office_street(j.at("head_office_street").get<std::string>());
         x.set_head_office_town(j.at("head_office_town").get<std::string>());
@@ -492,15 +498,22 @@ namespace quicktype {
         x.set_main_category(j.at("main_category").get<int64_t>());
         x.set_main_category_title(j.at("main_category_title").get<std::string>());
         x.set_members(j.at("members").get<int64_t>());
+        j.at("members_100");
         x.set_members_100(get_stack_optional<int64_t>(j, "members_100"));
+        j.at("members_25");
         x.set_members_25(get_stack_optional<int64_t>(j, "members_25"));
+        j.at("members_50");
         x.set_members_50(get_stack_optional<int64_t>(j, "members_50"));
+        j.at("members_75");
         x.set_members_75(get_stack_optional<int64_t>(j, "members_75"));
         x.set_members_fte(j.at("members_fte").get<double>());
         x.set_name(j.at("name").get<std::string>());
         x.set_native_name(get_untyped(j, "native_name"));
+        j.at("networking");
         x.set_networking(get_stack_optional<std::string>(j, "networking"));
+        j.at("number_of_natural_persons");
         x.set_number_of_natural_persons(get_stack_optional<int64_t>(j, "number_of_natural_persons"));
+        j.at("other_code_of_conduct");
         x.set_other_code_of_conduct(get_stack_optional<std::string>(j, "other_code_of_conduct"));
         x.set_registration_date(j.at("registration_date").get<std::string>());
         x.set_status(j.at("status").get<Status>());
@@ -509,6 +522,7 @@ namespace quicktype {
         x.set_sub_category_title(j.at("sub_category_title").get<std::string>());
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_uri(j.at("uri").get<std::string>());
+        j.at("web_site_url");
         x.set_web_site_url(get_stack_optional<std::string>(j, "web_site_url"));
     }
 
diff --git a/base/cplusplus/test/inputs/json/misc/7f568.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/7f568.json/default/quicktype.hpp
index 51827f0..c1ed86b 100644
--- a/base/cplusplus/test/inputs/json/misc/7f568.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/7f568.json/default/quicktype.hpp
@@ -231,6 +231,7 @@ namespace quicktype {
     inline void from_json(const json & j, File& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_filename(j.at("filename").get<std::string>());
+        j.at("language");
         x.set_language(get_stack_optional<Language>(j, "language"));
         x.set_raw_url(j.at("raw_url").get<std::string>());
         x.set_size(j.at("size").get<int64_t>());
@@ -252,6 +253,7 @@ namespace quicktype {
         x.set_comments_url(j.at("comments_url").get<std::string>());
         x.set_commits_url(j.at("commits_url").get<std::string>());
         x.set_created_at(j.at("created_at").get<std::string>());
+        j.at("description");
         x.set_description(get_stack_optional<std::string>(j, "description"));
         x.set_files(j.at("files").get<std::map<std::string, File>>());
         x.set_forks_url(j.at("forks_url").get<std::string>());
diff --git a/base/cplusplus/test/inputs/json/misc/80aff.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/80aff.json/default/quicktype.hpp
index d864d9b..fc9afd9 100644
--- a/base/cplusplus/test/inputs/json/misc/80aff.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/80aff.json/default/quicktype.hpp
@@ -212,6 +212,7 @@ namespace quicktype {
         x.set_id(j.at("id").get<int64_t>());
         x.set_items(j.at("items").get<int64_t>());
         x.set_name(j.at("name").get<std::string>());
+        j.at("parent");
         x.set_parent(get_stack_optional<int64_t>(j, "parent"));
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_uri(j.at("uri").get<std::string>());
diff --git a/base/cplusplus/test/inputs/json/misc/8592b.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/8592b.json/default/quicktype.hpp
index d2ac94a..121b04c 100644
--- a/base/cplusplus/test/inputs/json/misc/8592b.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/8592b.json/default/quicktype.hpp
@@ -681,7 +681,9 @@ namespace quicktype {
         x.set_approved_by(get_untyped(j, "approved_by"));
         x.set_archived(j.at("archived").get<bool>());
         x.set_author(j.at("author").get<std::string>());
+        j.at("author_flair_css_class");
         x.set_author_flair_css_class(get_stack_optional<std::string>(j, "author_flair_css_class"));
+        j.at("author_flair_text");
         x.set_author_flair_text(get_stack_optional<std::string>(j, "author_flair_text"));
         x.set_banned_at_utc(get_untyped(j, "banned_at_utc"));
         x.set_banned_by(get_untyped(j, "banned_by"));
@@ -724,6 +726,7 @@ namespace quicktype {
         x.set_secure_media(get_untyped(j, "secure_media"));
         x.set_secure_media_embed(j.at("secure_media_embed").get<MediaEmbed>());
         x.set_selftext(j.at("selftext").get<std::string>());
+        j.at("selftext_html");
         x.set_selftext_html(get_stack_optional<std::string>(j, "selftext_html"));
         x.set_spoiler(j.at("spoiler").get<bool>());
         x.set_stickied(j.at("stickied").get<bool>());
@@ -733,7 +736,9 @@ namespace quicktype {
         x.set_subreddit_type(j.at("subreddit_type").get<SubredditType>());
         x.set_suggested_sort(j.at("suggested_sort").get<SuggestedSort>());
         x.set_thumbnail(j.at("thumbnail").get<std::string>());
+        j.at("thumbnail_height");
         x.set_thumbnail_height(get_stack_optional<int64_t>(j, "thumbnail_height"));
+        j.at("thumbnail_width");
         x.set_thumbnail_width(get_stack_optional<int64_t>(j, "thumbnail_width"));
         x.set_title(j.at("title").get<std::string>());
         x.set_ups(j.at("ups").get<int64_t>());
diff --git a/base/cplusplus/test/inputs/json/misc/996bd.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/996bd.json/default/quicktype.hpp
index dff5e9a..21886ce 100644
--- a/base/cplusplus/test/inputs/json/misc/996bd.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/996bd.json/default/quicktype.hpp
@@ -279,6 +279,7 @@ namespace quicktype {
         x.set_links(j.at("links").get<std::vector<Link>>());
         x.set_name(j.at("name").get<std::string>());
         x.set_other_names(j.at("other_names").get<std::vector<nlohmann::json>>());
+        j.at("superseded_by");
         x.set_superseded_by(get_stack_optional<std::string>(j, "superseded_by"));
         x.set_text(j.at("text").get<std::vector<Text>>());
     }
diff --git a/base/cplusplus/test/inputs/json/misc/9ac3b.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/9ac3b.json/default/quicktype.hpp
index 87e3345..f3e19a7 100644
--- a/base/cplusplus/test/inputs/json/misc/9ac3b.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/9ac3b.json/default/quicktype.hpp
@@ -243,8 +243,10 @@ namespace quicktype {
         x.set_id(j.at("id").get<std::string>());
         x.set_last_name(j.at("last_name").get<std::string>());
         x.set_name(j.at("name").get<std::string>());
+        j.at("position");
         x.set_position(get_stack_optional<std::string>(j, "position"));
         x.set_status(j.at("status").get<Status>());
+        j.at("title");
         x.set_title(get_stack_optional<Title>(j, "title"));
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_uri(j.at("uri").get<std::string>());
diff --git a/base/cplusplus/test/inputs/json/misc/ad8be.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/ad8be.json/default/quicktype.hpp
index 832e22c..6bd02fa 100644
--- a/base/cplusplus/test/inputs/json/misc/ad8be.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/ad8be.json/default/quicktype.hpp
@@ -286,6 +286,7 @@ namespace quicktype {
     inline void from_json(const json & j, OtherName& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_name(j.at("name").get<std::string>());
+        j.at("note");
         x.set_note(get_stack_optional<std::string>(j, "note"));
     }
 
@@ -317,6 +318,7 @@ namespace quicktype {
         x.set_links(j.at("links").get<std::vector<Link>>());
         x.set_name(j.at("name").get<std::string>());
         x.set_other_names(j.at("other_names").get<std::vector<OtherName>>());
+        j.at("superseded_by");
         x.set_superseded_by(get_stack_optional<std::string>(j, "superseded_by"));
         x.set_text(j.at("text").get<std::vector<Text>>());
     }
diff --git a/base/cplusplus/test/inputs/json/misc/ae7f0.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/ae7f0.json/default/quicktype.hpp
index 0385cde..a69fbf8 100644
--- a/base/cplusplus/test/inputs/json/misc/ae7f0.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/ae7f0.json/default/quicktype.hpp
@@ -557,7 +557,9 @@ namespace quicktype {
         x.set_is_self(j.at("is_self").get<bool>());
         x.set_is_video(j.at("is_video").get<bool>());
         x.set_likes(get_untyped(j, "likes"));
+        j.at("link_flair_css_class");
         x.set_link_flair_css_class(get_stack_optional<std::string>(j, "link_flair_css_class"));
+        j.at("link_flair_text");
         x.set_link_flair_text(get_stack_optional<std::string>(j, "link_flair_text"));
         x.set_locked(j.at("locked").get<bool>());
         x.set_media(get_untyped(j, "media"));
diff --git a/base/cplusplus/test/inputs/json/misc/af2d1.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/af2d1.json/default/quicktype.hpp
index b4b2f4e..9aa6404 100644
--- a/base/cplusplus/test/inputs/json/misc/af2d1.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/af2d1.json/default/quicktype.hpp
@@ -494,33 +494,45 @@ namespace quicktype {
 
     inline void from_json(const json & j, FeatureProperties& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("add_improv");
         x.set_add_improv(get_stack_optional<AddImprov>(j, "add_improv"));
         x.set_area(j.at("area_").get<double>());
         x.set_asset_numb(j.at("asset_numb").get<std::string>());
+        j.at("comments");
         x.set_comments(get_stack_optional<std::string>(j, "comments"));
         x.set_condition(j.at("condition").get<int64_t>());
+        j.at("constructi");
         x.set_constructi(get_stack_optional<std::string>(j, "constructi"));
         x.set_createdate(get_untyped(j, "createdate"));
         x.set_createuser(get_untyped(j, "createuser"));
         x.set_disposal_d(get_untyped(j, "disposal_d"));
         x.set_documents(j.at("documents").get<std::string>());
+        j.at("drawing_nu");
         x.set_drawing_nu(get_stack_optional<std::string>(j, "drawing_nu"));
+        j.at("file_numbe");
         x.set_file_numbe(get_stack_optional<std::string>(j, "file_numbe"));
+        j.at("folder_num");
         x.set_folder_num(get_stack_optional<std::string>(j, "folder_num"));
+        j.at("funding_ba");
         x.set_funding_ba(get_stack_optional<FundingBa>(j, "funding_ba"));
         x.set_historic_c(j.at("historic_c").get<int64_t>());
         x.set_inspection(j.at("inspection").get<std::string>());
         x.set_inspectors(get_untyped(j, "inspectors"));
         x.set_last_updat(get_untyped(j, "last_updat"));
+        j.at("level_accu");
         x.set_level_accu(get_stack_optional<LevelAccu>(j, "level_accu"));
         x.set_material(j.at("material").get<Material>());
         x.set_mi_prinx(j.at("mi_prinx").get<int64_t>());
         x.set_mi_symbolo(j.at("mi_symbolo").get<MiSymbolo>());
         x.set_number_lan(j.at("number_lan").get<int64_t>());
+        j.at("owner");
         x.set_owner(get_stack_optional<std::string>(j, "owner"));
+        j.at("positional");
         x.set_positional(get_stack_optional<LevelAccu>(j, "positional"));
+        j.at("project_nu");
         x.set_project_nu(get_stack_optional<std::string>(j, "project_nu"));
         x.set_rec_id(j.at("rec_id").get<int64_t>());
+        j.at("record_cre");
         x.set_record_cre(get_stack_optional<std::string>(j, "record_cre"));
         x.set_shape_area(j.at("shape_area").get<double>());
         x.set_shape_leng(j.at("shape_leng").get<double>());
@@ -528,6 +540,7 @@ namespace quicktype {
         x.set_survey_num(get_untyped(j, "survey_num"));
         x.set_toe_rl(j.at("toe_rl").get<double>());
         x.set_top_rl(j.at("top_rl").get<double>());
+        j.at("type");
         x.set_type(get_stack_optional<PropertiesType>(j, "type"));
         x.set_update_dat(j.at("update_dat").get<std::string>());
         x.set_updatedate(get_untyped(j, "updatedate"));
diff --git a/base/cplusplus/test/inputs/json/misc/be234.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/be234.json/default/quicktype.hpp
index 3c100eb..d24c706 100644
--- a/base/cplusplus/test/inputs/json/misc/be234.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/be234.json/default/quicktype.hpp
@@ -913,6 +913,7 @@ namespace quicktype {
         x.set_archived(j.at("archived").get<bool>());
         x.set_author(j.at("author").get<std::string>());
         x.set_author_flair_css_class(get_untyped(j, "author_flair_css_class"));
+        j.at("author_flair_text");
         x.set_author_flair_text(get_stack_optional<std::string>(j, "author_flair_text"));
         x.set_banned_at_utc(get_untyped(j, "banned_at_utc"));
         x.set_banned_by(get_untyped(j, "banned_by"));
@@ -923,6 +924,7 @@ namespace quicktype {
         x.set_contest_mode(j.at("contest_mode").get<bool>());
         x.set_created(j.at("created").get<double>());
         x.set_created_utc(j.at("created_utc").get<double>());
+        j.at("distinguished");
         x.set_distinguished(get_stack_optional<std::string>(j, "distinguished"));
         x.set_domain(j.at("domain").get<Domain>());
         x.set_downs(j.at("downs").get<int64_t>());
@@ -937,6 +939,7 @@ namespace quicktype {
         x.set_link_flair_css_class(get_untyped(j, "link_flair_css_class"));
         x.set_link_flair_text(get_untyped(j, "link_flair_text"));
         x.set_locked(j.at("locked").get<bool>());
+        j.at("media");
         x.set_media(get_stack_optional<Media>(j, "media"));
         x.set_media_embed(j.at("media_embed").get<MediaEmbed>());
         x.set_mod_reports(j.at("mod_reports").get<std::vector<nlohmann::json>>());
@@ -952,6 +955,7 @@ namespace quicktype {
         x.set_report_reasons(get_untyped(j, "report_reasons"));
         x.set_saved(j.at("saved").get<bool>());
         x.set_score(j.at("score").get<int64_t>());
+        j.at("secure_media");
         x.set_secure_media(get_stack_optional<Media>(j, "secure_media"));
         x.set_secure_media_embed(j.at("secure_media_embed").get<MediaEmbed>());
         x.set_selftext(j.at("selftext").get<std::string>());
diff --git a/base/cplusplus/test/inputs/json/misc/d23d5.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/d23d5.json/default/quicktype.hpp
index 90aa62a..7df0334 100644
--- a/base/cplusplus/test/inputs/json/misc/d23d5.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/d23d5.json/default/quicktype.hpp
@@ -203,6 +203,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, Result& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("acronym");
         x.set_acronym(get_stack_optional<std::string>(j, "acronym"));
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_id(j.at("id").get<std::string>());
diff --git a/base/cplusplus/test/inputs/json/misc/f22f5.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/f22f5.json/default/quicktype.hpp
index 8a96eee..abb7011 100644
--- a/base/cplusplus/test/inputs/json/misc/f22f5.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/f22f5.json/default/quicktype.hpp
@@ -552,7 +552,9 @@ namespace quicktype {
         x.set_is_self(j.at("is_self").get<bool>());
         x.set_is_video(j.at("is_video").get<bool>());
         x.set_likes(get_untyped(j, "likes"));
+        j.at("link_flair_css_class");
         x.set_link_flair_css_class(get_stack_optional<std::string>(j, "link_flair_css_class"));
+        j.at("link_flair_text");
         x.set_link_flair_text(get_stack_optional<std::string>(j, "link_flair_text"));
         x.set_locked(j.at("locked").get<bool>());
         x.set_media(get_untyped(j, "media"));
diff --git a/base/cplusplus/test/inputs/json/priority/bug2590.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/priority/bug2590.json/default/quicktype.hpp
index 4f11b68..71b3209 100644
--- a/base/cplusplus/test/inputs/json/priority/bug2590.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/priority/bug2590.json/default/quicktype.hpp
@@ -133,7 +133,9 @@ namespace quicktype {
 
     inline void from_json(const json & j, Invoice& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("createdAt");
         x.set_created_at(get_stack_optional<std::string>(j, "createdAt"));
+        j.at("dueDate");
         x.set_due_date(get_stack_optional<std::string>(j, "dueDate"));
         x.set_name(j.at("name").get<std::string>());
     }
diff --git a/base/cplusplus/test/inputs/json/priority/list.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/priority/list.json/default/quicktype.hpp
index 8c23968..820bbaf 100644
--- a/base/cplusplus/test/inputs/json/priority/list.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/priority/list.json/default/quicktype.hpp
@@ -113,6 +113,7 @@ namespace quicktype {
     inline void from_json(const json & j, TopLevel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_data(j.at("data").get<int64_t>());
+        j.at("next");
         x.set_next(get_heap_optional<TopLevel>(j, "next"));
     }
 
diff --git a/base/cplusplus/test/inputs/json/samples/github-events.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/samples/github-events.json/default/quicktype.hpp
index 896d67e..1ef4013 100644
--- a/base/cplusplus/test/inputs/json/samples/github-events.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/samples/github-events.json/default/quicktype.hpp
@@ -1614,6 +1614,7 @@ namespace quicktype {
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_creator(j.at("creator").get<User>());
         x.set_description(j.at("description").get<std::string>());
+        j.at("due_on");
         x.set_due_on(get_stack_optional<std::string>(j, "due_on"));
         x.set_html_url(j.at("html_url").get<std::string>());
         x.set_id(j.at("id").get<int64_t>());
@@ -1666,6 +1667,7 @@ namespace quicktype {
         x.set_assignee(get_untyped(j, "assignee"));
         x.set_assignees(j.at("assignees").get<std::vector<nlohmann::json>>());
         x.set_body(j.at("body").get<std::string>());
+        j.at("closed_at");
         x.set_closed_at(get_stack_optional<std::string>(j, "closed_at"));
         x.set_comments(j.at("comments").get<int64_t>());
         x.set_comments_url(j.at("comments_url").get<std::string>());
@@ -1676,6 +1678,7 @@ namespace quicktype {
         x.set_labels(j.at("labels").get<std::vector<Label>>());
         x.set_labels_url(j.at("labels_url").get<std::string>());
         x.set_locked(j.at("locked").get<bool>());
+        j.at("milestone");
         x.set_milestone(get_stack_optional<Milestone>(j, "milestone"));
         x.set_number(j.at("number").get<int64_t>());
         x.set_pull_request(get_stack_optional<IssuePullRequest>(j, "pull_request"));
diff --git a/base/cplusplus/test/inputs/json/samples/null-safe.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/samples/null-safe.json/default/quicktype.hpp
index c9281a7..2341002 100644
--- a/base/cplusplus/test/inputs/json/samples/null-safe.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/samples/null-safe.json/default/quicktype.hpp
@@ -184,6 +184,7 @@ namespace quicktype {
         x.set_address(get_stack_optional<Address>(j, "address"));
         x.set_created_at(get_stack_optional<std::string>(j, "created_at"));
         x.set_name(j.at("name").get<std::string>());
+        j.at("sex");
         x.set_sex(get_stack_optional<int64_t>(j, "sex"));
     }
 
diff --git a/base/cplusplus/test/inputs/json/samples/pokedex.json/boost-true--bed8626e10e6/quicktype.hpp b/head/cplusplus/test/inputs/json/samples/pokedex.json/boost-true--bed8626e10e6/quicktype.hpp
index 0490a61..ebb1465 100644
--- a/base/cplusplus/test/inputs/json/samples/pokedex.json/boost-true--bed8626e10e6/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/samples/pokedex.json/boost-true--bed8626e10e6/quicktype.hpp
@@ -258,6 +258,7 @@ namespace quicktype {
         x.set_height(j.at("height").get<std::string>());
         x.set_id(j.at("id").get<int64_t>());
         x.set_img(j.at("img").get<std::string>());
+        j.at("multipliers");
         x.set_multipliers(get_stack_optional<std::vector<double>>(j, "multipliers"));
         x.set_name(j.at("name").get<std::string>());
         x.set_next_evolution(get_stack_optional<std::vector<Evolution>>(j, "next_evolution"));
diff --git a/base/cplusplus/test/inputs/json/samples/pokedex.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/samples/pokedex.json/default/quicktype.hpp
index 904df11..9c8673a 100644
--- a/base/cplusplus/test/inputs/json/samples/pokedex.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/samples/pokedex.json/default/quicktype.hpp
@@ -257,6 +257,7 @@ namespace quicktype {
         x.set_height(j.at("height").get<std::string>());
         x.set_id(j.at("id").get<int64_t>());
         x.set_img(j.at("img").get<std::string>());
+        j.at("multipliers");
         x.set_multipliers(get_stack_optional<std::vector<double>>(j, "multipliers"));
         x.set_name(j.at("name").get<std::string>());
         x.set_next_evolution(get_stack_optional<std::vector<Evolution>>(j, "next_evolution"));
diff --git a/base/cplusplus/test/inputs/json/samples/reddit.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/samples/reddit.json/default/quicktype.hpp
index ed16264..243c069 100644
--- a/base/cplusplus/test/inputs/json/samples/reddit.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/samples/reddit.json/default/quicktype.hpp
@@ -764,7 +764,9 @@ namespace quicktype {
         x.set_approved_by(get_untyped(j, "approved_by"));
         x.set_archived(j.at("archived").get<bool>());
         x.set_author(j.at("author").get<std::string>());
+        j.at("author_flair_css_class");
         x.set_author_flair_css_class(get_stack_optional<std::string>(j, "author_flair_css_class"));
+        j.at("author_flair_text");
         x.set_author_flair_text(get_stack_optional<std::string>(j, "author_flair_text"));
         x.set_banned_at_utc(get_untyped(j, "banned_at_utc"));
         x.set_banned_by(get_untyped(j, "banned_by"));
@@ -775,6 +777,7 @@ namespace quicktype {
         x.set_contest_mode(j.at("contest_mode").get<bool>());
         x.set_created(j.at("created").get<int64_t>());
         x.set_created_utc(j.at("created_utc").get<int64_t>());
+        j.at("distinguished");
         x.set_distinguished(get_stack_optional<std::string>(j, "distinguished"));
         x.set_domain(j.at("domain").get<Domain>());
         x.set_downs(j.at("downs").get<int64_t>());
@@ -786,7 +789,9 @@ namespace quicktype {
         x.set_is_self(j.at("is_self").get<bool>());
         x.set_is_video(j.at("is_video").get<bool>());
         x.set_likes(get_untyped(j, "likes"));
+        j.at("link_flair_css_class");
         x.set_link_flair_css_class(get_stack_optional<std::string>(j, "link_flair_css_class"));
+        j.at("link_flair_text");
         x.set_link_flair_text(get_stack_optional<std::string>(j, "link_flair_text"));
         x.set_locked(j.at("locked").get<bool>());
         x.set_media(get_untyped(j, "media"));
diff --git a/base/cplusplus/test/inputs/json/samples/us-senators.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/samples/us-senators.json/default/quicktype.hpp
index 34656fd..6059a32 100644
--- a/base/cplusplus/test/inputs/json/samples/us-senators.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/samples/us-senators.json/default/quicktype.hpp
@@ -495,7 +495,9 @@ namespace quicktype {
         x.set_osid(j.at("osid").get<std::string>());
         x.set_pvsid(j.at("pvsid").get<std::string>());
         x.set_sortname(j.at("sortname").get<std::string>());
+        j.at("twitterid");
         x.set_twitterid(get_stack_optional<std::string>(j, "twitterid"));
+        j.at("youtubeid");
         x.set_youtubeid(get_stack_optional<std::string>(j, "youtubeid"));
     }
 
@@ -522,6 +524,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, Object& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("caucus");
         x.set_caucus(get_stack_optional<Party>(j, "caucus"));
         x.set_congress_numbers(j.at("congress_numbers").get<std::vector<int64_t>>());
         x.set_current(j.at("current").get<bool>());
@@ -529,6 +532,7 @@ namespace quicktype {
         x.set_district(get_untyped(j, "district"));
         x.set_enddate(j.at("enddate").get<std::string>());
         x.set_extra(j.at("extra").get<Extra>());
+        j.at("leadership_title");
         x.set_leadership_title(get_stack_optional<std::string>(j, "leadership_title"));
         x.set_party(j.at("party").get<Party>());
         x.set_person(j.at("person").get<Person>());
diff --git a/base/cplusplus-multi-source/test/inputs/json/samples/pokedex.json/default/Generators.hpp b/head/cplusplus-multi-source/test/inputs/json/samples/pokedex.json/default/Generators.hpp
index a5ddba2..e984073 100644
--- a/base/cplusplus-multi-source/test/inputs/json/samples/pokedex.json/default/Generators.hpp
+++ b/head/cplusplus-multi-source/test/inputs/json/samples/pokedex.json/default/Generators.hpp
@@ -55,6 +55,7 @@ namespace quicktype {
         x.set_height(j.at("height").get<std::string>());
         x.set_id(j.at("id").get<int64_t>());
         x.set_img(j.at("img").get<std::string>());
+        j.at("multipliers");
         x.set_multipliers(get_stack_optional<std::vector<double>>(j, "multipliers"));
         x.set_name(j.at("name").get<std::string>());
         x.set_next_evolution(get_stack_optional<std::vector<Evolution>>(j, "next_evolution"));
diff --git a/base/graphql-cplusplus/test/inputs/graphql/github1.graphql/default/quicktype.hpp b/head/graphql-cplusplus/test/inputs/graphql/github1.graphql/default/quicktype.hpp
index 6c72f6e..4e33a50 100644
--- a/base/graphql-cplusplus/test/inputs/graphql/github1.graphql/default/quicktype.hpp
+++ b/head/graphql-cplusplus/test/inputs/graphql/github1.graphql/default/quicktype.hpp
@@ -169,6 +169,7 @@ namespace quicktype {
     inline void from_json(const json & j, User& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_login(j.at("login").get<std::string>());
+        j.at("realName");
         x.set_real_name(get_stack_optional<std::string>(j, "realName"));
     }
 
@@ -200,6 +201,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, TopLevel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("data");
         x.set_data(get_stack_optional<Data>(j, "data"));
         x.set_errors(get_stack_optional<std::vector<Error>>(j, "errors"));
     }
diff --git a/base/graphql-cplusplus/test/inputs/graphql/github2.graphql/default/quicktype.hpp b/head/graphql-cplusplus/test/inputs/graphql/github2.graphql/default/quicktype.hpp
index ca77a9f..fdc5788 100644
--- a/base/graphql-cplusplus/test/inputs/graphql/github2.graphql/default/quicktype.hpp
+++ b/head/graphql-cplusplus/test/inputs/graphql/github2.graphql/default/quicktype.hpp
@@ -218,6 +218,7 @@ namespace quicktype {
     inline void from_json(const json & j, RepositoryConnection& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_total_count(j.at("totalCount").get<int64_t>());
+        j.at("nodes");
         x.set_nodes(get_stack_optional<std::vector<std::optional<Repository>>>(j, "nodes"));
     }
 
@@ -261,6 +262,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, TopLevel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("data");
         x.set_data(get_stack_optional<Data>(j, "data"));
         x.set_errors(get_stack_optional<std::vector<Error>>(j, "errors"));
     }
diff --git a/base/graphql-cplusplus/test/inputs/graphql/github3.graphql/default/quicktype.hpp b/head/graphql-cplusplus/test/inputs/graphql/github3.graphql/default/quicktype.hpp
index 652edcf..e4a83a3 100644
--- a/base/graphql-cplusplus/test/inputs/graphql/github3.graphql/default/quicktype.hpp
+++ b/head/graphql-cplusplus/test/inputs/graphql/github3.graphql/default/quicktype.hpp
@@ -233,6 +233,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, PullRequestConnection& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("nodes");
         x.set_nodes(get_stack_optional<std::vector<std::optional<PullRequest>>>(j, "nodes"));
     }
 
@@ -254,6 +255,7 @@ namespace quicktype {
     inline void from_json(const json & j, User& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_login(j.at("login").get<std::string>());
+        j.at("repository");
         x.set_repository(get_stack_optional<Repository>(j, "repository"));
     }
 
@@ -285,6 +287,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, TopLevel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("data");
         x.set_data(get_stack_optional<Data>(j, "data"));
         x.set_errors(get_stack_optional<std::vector<Error>>(j, "errors"));
     }
diff --git a/base/graphql-cplusplus/test/inputs/graphql/github4.graphql/default/quicktype.hpp b/head/graphql-cplusplus/test/inputs/graphql/github4.graphql/default/quicktype.hpp
index f6568ff..2cdefbd 100644
--- a/base/graphql-cplusplus/test/inputs/graphql/github4.graphql/default/quicktype.hpp
+++ b/head/graphql-cplusplus/test/inputs/graphql/github4.graphql/default/quicktype.hpp
@@ -237,6 +237,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, PullRequestConnection& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("nodes");
         x.set_nodes(get_stack_optional<std::vector<std::optional<PullRequest>>>(j, "nodes"));
     }
 
@@ -258,7 +259,9 @@ namespace quicktype {
     inline void from_json(const json & j, User& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_login(j.at("login").get<std::string>());
+        j.at("name");
         x.set_name(get_stack_optional<std::string>(j, "name"));
+        j.at("repository");
         x.set_repository(get_stack_optional<Repository>(j, "repository"));
     }
 
@@ -291,6 +294,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, TopLevel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("data");
         x.set_data(get_stack_optional<Data>(j, "data"));
         x.set_errors(get_stack_optional<std::vector<Error>>(j, "errors"));
     }
diff --git a/base/graphql-cplusplus/test/inputs/graphql/github5.graphql/default/quicktype.hpp b/head/graphql-cplusplus/test/inputs/graphql/github5.graphql/default/quicktype.hpp
index fa2b9e1..baa6061 100644
--- a/base/graphql-cplusplus/test/inputs/graphql/github5.graphql/default/quicktype.hpp
+++ b/head/graphql-cplusplus/test/inputs/graphql/github5.graphql/default/quicktype.hpp
@@ -200,6 +200,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, TopLevel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("data");
         x.set_data(get_stack_optional<Data>(j, "data"));
         x.set_errors(get_stack_optional<std::vector<Error>>(j, "errors"));
     }
diff --git a/base/graphql-cplusplus/test/inputs/graphql/github6.graphql/default/quicktype.hpp b/head/graphql-cplusplus/test/inputs/graphql/github6.graphql/default/quicktype.hpp
index d5ea3f4..6bf1152 100644
--- a/base/graphql-cplusplus/test/inputs/graphql/github6.graphql/default/quicktype.hpp
+++ b/head/graphql-cplusplus/test/inputs/graphql/github6.graphql/default/quicktype.hpp
@@ -180,6 +180,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, Data& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("resource");
         x.set_resource(get_stack_optional<UniformResourceLocatable>(j, "resource"));
     }
 
@@ -200,6 +201,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, TopLevel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("data");
         x.set_data(get_stack_optional<Data>(j, "data"));
         x.set_errors(get_stack_optional<std::vector<Error>>(j, "errors"));
     }
diff --git a/base/graphql-cplusplus/test/inputs/graphql/github7.graphql/default/quicktype.hpp b/head/graphql-cplusplus/test/inputs/graphql/github7.graphql/default/quicktype.hpp
index b297115..a441788 100644
--- a/base/graphql-cplusplus/test/inputs/graphql/github7.graphql/default/quicktype.hpp
+++ b/head/graphql-cplusplus/test/inputs/graphql/github7.graphql/default/quicktype.hpp
@@ -288,6 +288,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, RepositoryEdge& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("node");
         x.set_node(get_stack_optional<Repository>(j, "node"));
     }
 
@@ -298,6 +299,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, RepositoryConnection& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("edges");
         x.set_edges(get_stack_optional<std::vector<std::optional<RepositoryEdge>>>(j, "edges"));
     }
 
@@ -342,6 +344,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, TopLevel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("data");
         x.set_data(get_stack_optional<Data>(j, "data"));
         x.set_errors(get_stack_optional<std::vector<Error>>(j, "errors"));
     }
diff --git a/base/graphql-cplusplus/test/inputs/graphql/github8.graphql/default/quicktype.hpp b/head/graphql-cplusplus/test/inputs/graphql/github8.graphql/default/quicktype.hpp
index 95f1b2e..421dcbc 100644
--- a/base/graphql-cplusplus/test/inputs/graphql/github8.graphql/default/quicktype.hpp
+++ b/head/graphql-cplusplus/test/inputs/graphql/github8.graphql/default/quicktype.hpp
@@ -218,7 +218,9 @@ namespace quicktype {
     inline void from_json(const json & j, Repository& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_name_with_owner(j.at("nameWithOwner").get<std::string>());
+        j.at("n303");
         x.set_n303(get_stack_optional<IssueOrPullRequest>(j, "n303"));
+        j.at("n307");
         x.set_n307(get_stack_optional<IssueOrPullRequest>(j, "n307"));
     }
 
@@ -231,6 +233,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, Data& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("repository");
         x.set_repository(get_stack_optional<Repository>(j, "repository"));
     }
 
@@ -251,6 +254,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, TopLevel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("data");
         x.set_data(get_stack_optional<Data>(j, "data"));
         x.set_errors(get_stack_optional<std::vector<Error>>(j, "errors"));
     }
diff --git a/base/graphql-cplusplus/test/inputs/graphql/github9.graphql/default/quicktype.hpp b/head/graphql-cplusplus/test/inputs/graphql/github9.graphql/default/quicktype.hpp
index c1c56ea..039dfd0 100644
--- a/base/graphql-cplusplus/test/inputs/graphql/github9.graphql/default/quicktype.hpp
+++ b/head/graphql-cplusplus/test/inputs/graphql/github9.graphql/default/quicktype.hpp
@@ -226,6 +226,7 @@ namespace quicktype {
     inline void from_json(const json & j, Reactable& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_viewer_can_react(j.at("viewerCanReact").get<bool>());
+        j.at("reactionGroups");
         x.set_reaction_groups(get_stack_optional<std::vector<Reaction>>(j, "reactionGroups"));
     }
 
@@ -237,6 +238,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, AddReactionPayload& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("clientMutationId");
         x.set_client_mutation_id(get_stack_optional<std::string>(j, "clientMutationId"));
         x.set_reaction(j.at("reaction").get<Reaction>());
         x.set_subject(j.at("subject").get<Reactable>());
@@ -251,6 +253,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, Data& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("addReaction");
         x.set_add_reaction(get_stack_optional<AddReactionPayload>(j, "addReaction"));
     }
 
@@ -271,6 +274,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, TopLevel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("data");
         x.set_data(get_stack_optional<Data>(j, "data"));
         x.set_errors(get_stack_optional<std::vector<Error>>(j, "errors"));
     }
diff --git a/base/schema-cplusplus/test/inputs/schema/bool-string.schema/default/quicktype.hpp b/head/schema-cplusplus/test/inputs/schema/bool-string.schema/default/quicktype.hpp
index 0eb0a47..76b9f55 100644
--- a/base/schema-cplusplus/test/inputs/schema/bool-string.schema/default/quicktype.hpp
+++ b/head/schema-cplusplus/test/inputs/schema/bool-string.schema/default/quicktype.hpp
@@ -151,6 +151,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_arr_nullable(get_stack_optional<std::vector<std::optional<std::string>>>(j, "arrNullable"));
         x.set_arr_one(get_stack_optional<std::vector<std::string>>(j, "arrOne"));
+        j.at("nullable");
         x.set_nullable(get_stack_optional<std::string>(j, "nullable"));
         x.set_one(j.at("one").get<std::string>());
         x.set_optional(get_stack_optional<std::string>(j, "optional"));
diff --git a/base/schema-cplusplus/test/inputs/schema/direct-union.schema/default/quicktype.hpp b/head/schema-cplusplus/test/inputs/schema/direct-union.schema/default/quicktype.hpp
index 070d375..607eaca 100644
--- a/base/schema-cplusplus/test/inputs/schema/direct-union.schema/default/quicktype.hpp
+++ b/head/schema-cplusplus/test/inputs/schema/direct-union.schema/default/quicktype.hpp
@@ -141,6 +141,7 @@ namespace quicktype {
     inline void from_json(const json & j, Thing& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_optional(get_stack_optional<std::variant<std::vector<nlohmann::json>, bool, double, int64_t, std::map<std::string, nlohmann::json>, std::string>>(j, "optional"));
+        j.at("required");
         x.set_required(get_stack_optional<std::variant<std::vector<nlohmann::json>, bool, double, int64_t, std::map<std::string, nlohmann::json>, std::string>>(j, "required"));
     }
 
diff --git a/base/schema-cplusplus/test/inputs/schema/enum-with-null.schema/default/quicktype.hpp b/head/schema-cplusplus/test/inputs/schema/enum-with-null.schema/default/quicktype.hpp
index 8a9ddb8..56d6180 100644
--- a/base/schema-cplusplus/test/inputs/schema/enum-with-null.schema/default/quicktype.hpp
+++ b/head/schema-cplusplus/test/inputs/schema/enum-with-null.schema/default/quicktype.hpp
@@ -112,6 +112,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, TopLevel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("enum");
         x.set_top_level_enum(get_stack_optional<Enum>(j, "enum"));
     }
 
diff --git a/base/schema-cplusplus/test/inputs/schema/implicit-class-array-union.schema/default/quicktype.hpp b/head/schema-cplusplus/test/inputs/schema/implicit-class-array-union.schema/default/quicktype.hpp
index bdd34cd..5ea0fca 100644
--- a/base/schema-cplusplus/test/inputs/schema/implicit-class-array-union.schema/default/quicktype.hpp
+++ b/head/schema-cplusplus/test/inputs/schema/implicit-class-array-union.schema/default/quicktype.hpp
@@ -145,6 +145,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, TopLevel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("foo");
         x.set_foo(get_stack_optional<std::variant<std::vector<int64_t>, bool, FooClass, double, int64_t, std::string>>(j, "foo"));
     }
 
diff --git a/base/schema-cplusplus/test/inputs/schema/integer-string.schema/default/quicktype.hpp b/head/schema-cplusplus/test/inputs/schema/integer-string.schema/default/quicktype.hpp
index 5ece112..f39159a 100644
--- a/base/schema-cplusplus/test/inputs/schema/integer-string.schema/default/quicktype.hpp
+++ b/head/schema-cplusplus/test/inputs/schema/integer-string.schema/default/quicktype.hpp
@@ -151,6 +151,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_arr_nullable(get_stack_optional<std::vector<std::optional<std::string>>>(j, "arrNullable"));
         x.set_arr_one(get_stack_optional<std::vector<std::string>>(j, "arrOne"));
+        j.at("nullable");
         x.set_nullable(get_stack_optional<std::string>(j, "nullable"));
         x.set_one(j.at("one").get<std::string>());
         x.set_optional(get_stack_optional<std::string>(j, "optional"));
diff --git a/base/schema-cplusplus/test/inputs/schema/strict-optional.schema/default/quicktype.hpp b/head/schema-cplusplus/test/inputs/schema/strict-optional.schema/default/quicktype.hpp
index 0540f85..3a3dc97 100644
--- a/base/schema-cplusplus/test/inputs/schema/strict-optional.schema/default/quicktype.hpp
+++ b/head/schema-cplusplus/test/inputs/schema/strict-optional.schema/default/quicktype.hpp
@@ -107,6 +107,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, TopLevel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
+        j.at("foo");
         x.set_foo(get_stack_optional<double>(j, "foo"));
     }
 
diff --git a/base/schema-cplusplus/test/inputs/schema/uuid.schema/default/quicktype.hpp b/head/schema-cplusplus/test/inputs/schema/uuid.schema/default/quicktype.hpp
index d6f3c53..2aacdd3 100644
--- a/base/schema-cplusplus/test/inputs/schema/uuid.schema/default/quicktype.hpp
+++ b/head/schema-cplusplus/test/inputs/schema/uuid.schema/default/quicktype.hpp
@@ -135,6 +135,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_arr_nullable(get_stack_optional<std::vector<std::optional<std::string>>>(j, "arrNullable"));
         x.set_arr_one(get_stack_optional<std::vector<std::string>>(j, "arrOne"));
+        j.at("nullable");
         x.set_nullable(get_stack_optional<std::string>(j, "nullable"));
         x.set_one(j.at("one").get<std::string>());
         x.set_optional(get_stack_optional<std::string>(j, "optional"));
