I can relate to the OP, it was a year ago when I discovered wireguard. I has a use case (encrypt NFS traffic) and wireguard looked perfect! I read through the website www.wireguard.com to understand what it is.
Remembered seeing somewhere that OpenBSD has built-in wireguard support. Didn't take long to find the wireguard section of ifconfig manpage and then the wg manpage. The manual pages (as usual) are great at detailing the individual pieces of configuration and their syntax. But I was still lacking the basics. I needed an overview of the general idea what wireguard is before the specifics of configuring it. Like most things once you get it, you got it, and wonder why you couldn't see it in the first place. That's the hardest part of writing documentation, what is obvious to the developer is a vague foreign concept to a new user of said item. Until the concepts are understood the nitty gritty details are confusing. It was from reading the examples in wg manpage that got me over the hump to understanding wg. I already know routing (was my job before retiring) but yes a good understanding of subnets, gateways and routing tables is needed as you'll be configuring static routes for wg. I wish the OP the best, wireguard is one of the easiest encrypted links you can configure and OpenBSD makes the configuration so simple. Simple being using hostname.if files like other things in OpenBSD. But if you gotta have the wireguard configuration to be done the same way as it is done on other platforms then install the package wireguard-tools. I didn't learn about that package until later but *I* still won't use it. My use case is a simple, my hosts have two networks connecting them, 1) the real network and 2) a wireguard encrypted subnet. So protecting my NFS mounts was simply just changing the IP (dns name) used in fstab. Same for regular DNS, resolv.conf now points to the wireguard IP addresses.

