Sorry, this question may be a bit long. I'm developing a farm game and I've run into a problem.
I have a lot of maps and I would like to provide a "save and load" feature. Suppose the player appears on map A, which has some trees on it. He cuts down some trees and goes to map B. He does some actions on map B and then goes back to map A. The trees that were cut down should be still in the cut down state. But the player is not satisfied with his actions, so he quits the game and reloads the archive, at which point the trees on map A appear.
When we switch to a new scene, we can't retain state, so I have to use a singleton to store the state we want to retain. Normally we use json to store this data, but resources seem to be a better choice in Godot. When the player clicks the save button we write the resource to a file, otherwise the resource is discarded.
The initial map has a number of trees that are added in the editor, and if I want to make these trees maintainable, I have to add information about these trees when the save is initialized. That is, when the player creates a new archive, I will read all the tree nodes in the map and save the data, then delete all the tree nodes and save the scene.
From now on, I'll keep all the information about the trees no matter what the player does, and it's easy to do whenever the player wants to save.

Since there is a lot of work to be done, I want to make sure I'm on the right track, because a lot of time can be wasted in the wrong direction.

    award
    I'm such an idiot! At first I always thought of .tscn as a permanent resource, but I can actually save .tscn as a temporary resource, and I only move the temporary maps to the archive if the player decides to save the map. Your reply has inspired me a lot and will definitely save me a lot of time in the future. Thanks a lot bro!