island_region values are now consistently abbreviated ("L", "V", "M")
across all releases. Three older releases (Q4_2023, April_2024, Q2_2024) had
full spellings ("Luzon", "Visayas", "Mindanao") which are now recoded during
the data build step.get_psgc_wide() returns a denormalised wide-format data frame with one row
per barangay and all four geographic levels (region, province,
city/municipality, barangay) spread into columns. HUC/ICC barangays have
city_mun / city_mun_code set to NA; areas with no province layer (e.g.
Pateros, City of Isabela, Special Geographic Areas) have province /
province_code set to NA (#get_psgc_wide).
map_psgc() gains a changes_only argument. When TRUE, only rows where
the code actually changed (mapping type is not "direct") are returned,
making it easy to identify renumbered or abolished codes across releases.
map_psgc() has been rewritten with a fully vectorised algorithm. The
crosswalk is pre-split by hop once per call and all codes are processed
simultaneously at each hop using match(), replacing the previous per-code
loop. This yields roughly a 500× speed-up for large code vectors (e.g.
1 000 codes: 94 s → < 0.2 s).