In the VisualElement class, I found things like persistentKey and GetOrCreatePersistentData <T> (), OnPersistentDataReady (), SavePersistentData (), GetFullHierarchPersistenceKey () I would like to get a little more information about how this works. My questions are as follows: - How does SavePersistentData () understand what needs to be saved? What kind of things does it save? Does this include ScriptableObject, Serializable, or primitives? Does encapsulation affect (data must be public)? How close is it to the rules for storing objects in MonoBehaviour? What key is used to save - persistentKey or GetFullHierarchicalPersistenceKey ()? - How does GetOrCreatePersistentData <T> () understand exactly what we are going to get? Does it depend on the type? From GetHashCode ()? - Where is the data file stored? Are there any other methods and fields that I need to know about in order to use it?