You can locally store game data with the Storage component. It allows saving custom game properties as key-value pairs, but can also store complex JSON data structures by converting from/to JSON when storing or loading data (this is automatically done internally).
For dynamically created entities, it is required to memorize the created entities/types and their state/position, which then allows you to manually re-create them when loading the data. This is also what our Level Editor does when storing/loading levels, so you can also use the Level Editor for storing the state of your game (think of the game state as the “level” you load/save, but without an editor to configure or adding entities).
So I suggest to either implement a custom saving/loading for your use-case or re-use the Level Editor features for that.
Günther from Felgo