Como lidar com parâmetros que podem ser ARRAY ou OBJECT no Retrofit no Android?

Estou tendo um problema em que a API que estou analisando retorna um OBJECT para uma ARRAY do tamanho 1.

Por exemplo, às vezes a API responde com:

{
    "monument": [
        {
            "key": 4152,
            "name": "MTS - Corporate Head Office",
            "categories": {},
            "address": {}
        },
        {
            "key": 4151,
            "name": "Canadian Transportation Agency",
            "categories": {},
            "address": {}
        },
        {
            "key": 4153,
            "name": "Bank of Montreal Building",
            "categories": {},
            "address": {}
        }
    ],
}

No entanto, se omonument matriz possui apenas 1 item, torna-se um OBJETO (observe a falta de[] colchetes) assim:

{
    "monument": {
        "key": 4152,
        "name": "MTS - Corporate Head Office",
        "categories": {},
        "address": {}
    }
}

Se eu definir meus modelos assim, receberei um erro quando apenas um único item for retornado:

public class Locations {
    public List<Monument> monument;
}

Se apenas um único item for retornado, eu recebo o seguinte erro:

Expected BEGIN_OBJECT but was BEGIN_ARRAY ...

E se eu definir meu modelo assim:

public class Locations {
    public Monument monument;
}

e a API retorna um ARRAY, recebo o erro oposto

Expected BEGIN_ARRAY  but was BEGIN_OBJECT ...

Não consigo definir vários itens com o mesmo nome no meu modelo. Como posso lidar com este caso?

Nota: Não consigo fazer alterações na API.

questionAnswers(2)

yourAnswerToTheQuestion