I have a web services connector where, when reading an attribute that is a list, it returns 3 identical values. I need a transform so that only one of the 3 values is mapped, as they will always be the same.

You can try using the the first valid transform type for this attribute. I have attached an example of a firstVaild transform you can use as reference.
{
"id": "REMOVED",
"name": "Transform - FirstVaild - SecZetta - PreferredName",
"type": "firstValid",
"attributes": {
"values": [
{
"attributes": {
"sourceName": "SecZetta",
"attributeName": "preferred_name_ne_attribute"
},
"type": "accountAttribute"
},
{
"attributes": {
"values": [
{
"attributes": {
"sourceName": "SecZetta",
"attributeName": "personal_first_name"
},
"type": "accountAttribute"
},
" ",
{
"attributes": {
"sourceName": "SecZetta",
"attributeName": "personal_last_name"
},
"type": "accountAttribute"
}
]
},
"type": "concat"
}
]
},
"internal": false
}
But in that example you use a first valid for two different attributes, here I only have one attribute that has repeated values, I understand that if I use a first valid it would continue to bring the 3 repeated values, there would be no change
how does this field come back in the raw form?
You could try using this with the FirstVaild.
Realistically, this is not a problem to be solved by a transform. This is a misconfiguration on your Web Services source. In the source config, under HTTP Operations, for each operation that lists this value in the Response Mapping, append [0] to the end of the Attribute Path. This will ensure you’re only pulling in the first item in the array of cityNav values, rather than the entire array.