Não é possível desserializar JSON contendo chaves $ ref

Eu tenho o seguinte código tentando desserializar uma seqüência de caracteres JSON e a biblioteca me dá esse erro:

Conteúdo adicional encontrado no objeto de referência JSON. Um objeto de referência JSON deve ter apenas uma propriedade $ ref. Caminho 'user.obj', linha 1, posição 34.

Alguma idéia do que está errado? (Entendo que está reclamando do segundo $ ref, mas não sei por que.) Qual é a solução alternativa?

void Main()
{
    var s = "{\"user\": {\"$ref\": \"123456\", \"obj\": {\"$ref\": \"123456\"}}}";
    JsonConvert.DeserializeObject<Root>(s).Dump();
}

// Define other methods and classes here
public class Root
{
    [JsonProperty("user")]
    public User User { get; set; }
}

public class User
{
    [JsonPropertyAttribute("$ref")]
    public string Ref { get; set; }

    [JsonPropertyAttribute("obj")]
    public Obj Obj { get; set; }
}

public class Obj
{
    [JsonPropertyAttribute("$ref")]
    public string Ref { get; set; }
}

questionAnswers(1)

yourAnswerToTheQuestion