ECS Save/Load System?

Hello everyone,

First of, not a beginner in unity, but a beginner in ECS.
I’ve looked almost everywhere but I can’t seem to find any good info/guides/tutorials on this topic. I’m currently asking myself how one would create a save and load sytem for a game. I know that up until Entites 0.50 you could use (De)SerializeWorld with the StreamBinaryReader/Writer to essentialy create a full copy of the subscene and load it back, but since then these functions have been made internal and unity stated, that you need to implement them on your own. Does anyone have experience with this and would be willing to help out? I most likely would want to read out all entities and save them completely, because everything in the world should be placeable by the player, or simply automated spawning, where the spawned entity needs to be saved (except the terrain of course, only changes to it).

I previously build a savesystem in OOP, but ECS seems like it is vastly different. Are there alternatives or better methods like creating your own serializers for entities to convert them to json or is that out of the question? I currently dont like the idea of third party options, because with unity changing stuff and the creator of a third party tool sleeping on these changes likely causes issues.

Any help is appreciated!