Adding this one on behalf of @ryantrem who may be able to provide more details.
"It would also be good to figure out a way to have better cleanup of values produced by bindings. For example, a converter could convert a byte array to a unique Unity Texture2D (e.g. a profile picture). Since there is only one consumer of the Texture2D in this case, then it should be cleaned up whenever a new value is produced by the binding, or when the target GameObject is destroyed. On the other hand, a converter could convert an enum to one of a standard set of shared Unity Texture2Ds (e.g. a status indicator). In this case, then Texture2D provided by the binding is shared, and should not be cleaned up. Maybe there is just an extra property on the binding to determine whether resources should be cleaned up, or maybe there is some extra property on the converter, or maybe there is some extra data somehow associated with the value produced by the converter... not sure."
Adding this one on behalf of @ryantrem who may be able to provide more details.
"It would also be good to figure out a way to have better cleanup of values produced by bindings. For example, a converter could convert a byte array to a unique Unity Texture2D (e.g. a profile picture). Since there is only one consumer of the Texture2D in this case, then it should be cleaned up whenever a new value is produced by the binding, or when the target GameObject is destroyed. On the other hand, a converter could convert an enum to one of a standard set of shared Unity Texture2Ds (e.g. a status indicator). In this case, then Texture2D provided by the binding is shared, and should not be cleaned up. Maybe there is just an extra property on the binding to determine whether resources should be cleaned up, or maybe there is some extra property on the converter, or maybe there is some extra data somehow associated with the value produced by the converter... not sure."