How to create a save & load system with: System.Serializable ???

I looked for several tutorials, but I did not find one that explained how to save ALL GameObjects of a scene (position, condition, variables, etc.).
I think it’s possible to do this with System.Serializable, however I do not know how to use it, please recommend tutorials on how to use it.

The best practices are to save things like Quest progress, Position, Levels, Inventory info, etc. Saving only the data you need to “repaint” the scene.
Your main menu should handle the initial loading check.
Unity ONLY uses System.Serializable for scriptableObjects. You need to use System.Serializable as a file formatter, Binary is your best option and works on all platforms.
Go ahead and look into ths Formatting in Binary
The most common practice is to dump EVERYTHING into a Dictionary and serialize the dictionary.