Scratch sets a value reference to .Site.Data (Bug?)

I am not sure if this is an issue, but when I set a scratch variable to a .Site.Data.settings.button and use $.Scratch.SetInMap and change the contents of the scratch it also changes the value in the .Site.Data.settings.button for the rest of the page.

{{ print "value==> " (.Site.Data.settings.button) }}
{{ $.Scratch.Set "buttonsettings" .Site.Data.settings.button }}
{{ $.Scratch.SetInMap "buttonsettings" "content" "Click Me" }}
{{ partial "component/button" ($.Scratch.Get "buttonsettings") }}
{{ print "value==> " (.Site.Data.settings.button) }}

This is expected behavior.

@bep Any recommendation of how to set the Scratch variable without the reference, but get the values from the Data?