I can understand this. Accessing by keys rarely happens in pure ReScript code, but is useful when interacting with external JS codes.
I used this pattenrs a lot
type key =
| @as("preferred_language") PreferredLanguage
| @as("preferred_timezone") PreferredTimeZone
@genType
module Key = {
let \"PreferredLanguage" = PreferredLanguage
let \"PreferredTimeZone" = PreferredTimeZone
}
Used it for building DTOs
There may some community PPXs exist already. e.g. GitHub - Astrocoders/lenses-ppx: GADT lenses
But generalizing it with using PPX or Proxies seems like an overkill solution. What it really need is more of a simple record ↔ dict converter.