# Map entries of StructuredArray

I have the following defintion

arr = SymmetrizedArray[{1, 2} -> 1, {4, 4}, Antisymmetric[{1, 2}]]


which gives a StructuredArray with one entry {1,2}->1. I would like to map this array to a new one on a (key,value) basis, i.e. the desired result would look like something like this:

desiredResult = SymmetrizedArray[f[{1, 2}] -> g[1], {4, 4}, Antisymmetric[{1, 2}]]


I found out that for SparseArray one can do
SparseArray[{{1, 2} -> 1, {2, 1} -> -1}, {4, 4}]["NonzeroPositions"]

to get all available keys, but I actually would like to not convert my StructuredArray to a SparseArray to keep the number of entries at a minimum. Unfortunately an analogous syntax doesn't work with SparseArray.