Well, it turns out that since Godot is a fully-featured game design tool, they have built-in formatting for save data so I don't really need to get too deep in the weeds with it. In fact, I could have done this without understanding how data is saved at all!
First off, json can be parsed natively in Godot, but because of the format, it struggles with Godot's data types (like saving vectors). I was presented with two immediate options: save as simple .dat files (I believe just saved in hex), or use Godot Resource files to save data.
On the topic of save manipulation, .dat is better, though the level of security is pretty light. Resource files are saved as plain text, and could be easily manipulated. As I thought about this more, though, I decided I didn't care and am comfortable with people editing their saves to have more fun/break the game.
That said, I did the .dat version of saving first, because it is easier to add to a project that is already in progress.

Remember this guy?
Well this has everything I need to test saving. So let's do it!
First, I assign the z key to save and x to load for no good reason at all.

Inside our character, when it's checking what keys your pressing to move your guy around/pick up worms/catch fish, now it also checks for z or x being pressed. We chuck a custom function into each of these.

It's not visible here, but the only variable that is kept outside the function is "save_path" which points to simply "user://save.dat"
user:// is a folder which the engine makes specifically for this sort of thing. It is persistent, on Windows I guess it's saved in AppData or User, probably. On linux, it'll save in ~/.local/share/godot/app_userdata and then whatever directories have been made for running godot projects. The tutorial I followed also mentioned the use of a Directory function that I could use to separate this stuff up, should I wish to (currently, I don't wish to.)
Anyway, pretty straight forward - a single save file is opened and written. File.store_var will save whatever we want it to, so for the example, I just saved a number.

Loading is just as simple. We dump everything from the save file into a variable.
So let's use this to...like make a game.
First, we need to know what to save, and this is where I clearly see the flaws of this method. I have to do a mental checklist of everything I would want to save. Scrolling through the script, I grab these 5 values, but on a more complicated game, this could be a lot.

The easiest way to automate this, I think, would be to save all these stats as a separate file, then save, load, and update from that file instead of from each variable separately. This would be done using Resources in Godot - which I did a bit of in Sewer Kings. Tomorrow, I'll probably attempt to do something like that with this same game. It's simple enough that I could make those adjustments in less than an hour. Anyway, that's for tomorrow.
I set the data that is saved to this in the save function, which would be loaded in the load function, but needs to be applied to the game world. To do this, I create a new custom function:

The net and rod should always reset themselves, but I put it in there just in case something weird happens mid-save. reset_text is a function that was already in the game that just updates all the information that is visible to the player - which should work great now that all the values have been updated.

A quick tap of the z and x keys show that everything should be working alright. I walk a bit to the right, save, then I close the game, then walk to the far side of the screen. Pressing x reloads! This also works during the game - allowing you to save and load at any time. The randomize function is never recalled, so the pseudorandom numbers are still in their queue, I believe. Just a note for next time.

Tomorrow: see how much of this I can automate without having to type in every single variable I want to save and load. Obviously that would be something to keep in mind at the START of a project, not the end of one - but it's good to know I can add save/load to any gamejam game pretty easily with what I learned today. Using Godot's data-type Resources, the processing time should be way faster, it also saves all the data types in Godot without issue, though there is a persistent bug of having trouble loading data inside other data. I have no idea if that would even come up in whatever I try and make, so it may be a non-issue. Really I need to figure out what I want to save before choosing the best save method to do so. Alongside that, I'd really like to make a big list of everything I would need to do to make a River King clone that doesn't look like shit.
For the record, I took all of this from GameEndeavor's tutorial
here: it's 10 minutes and very good.