If any of this looks like fun (it is so very much fun), dropping by your friendly local soaring club on a weekend is a good place to start! The Soaring Society of America has a club map here: https://www.ssa.org/where-to-fly-map-2/
Super affordable for an aviation thing. I'll often fly 4-5 hours from a $50 tow. My previous club charged about $500/yr with no hourly fees for glider use. I bought my own mid-performance glider for $15k and a $200 annual inspection. Occasionally you do land out in a field and need to buy dinner for the club-members that come pick you up!
Also, as pointed out below, Github's GraphQL types also include fields like `permalink` and `url` (and interfaces like `UniformResourceLocatable`) that probably save you from needing to construct it yourself.
I wouldn't decode them like this, it's fragile, and global node IDs are supposed to be opaque in GraphQL.
I see that GitHub exposes a `databaseId` field on many of their types (like PullRequest) - is that what you're looking for? [1]
Most GraphQL APIs that serve objects that implement the Node interface just base-64-encode the type name and the database ID, but I definitely wouldn't rely on that always being the case. You can read more about global IDs in GraphQL in the spec in [2].