public abstract record XXX
public XXX That { get; init; }
public record YYY(string XX): XXX(){};
public static void Main()
Console.WriteLine("---");
Console.WriteLine(((YYY)y1.That).XX);
Console.WriteLine(y1.XX);
y1 = y1 with { XX = "2" };
Console.WriteLine("---");
Console.WriteLine(((YYY)y1.That).XX);
Console.WriteLine(y1.XX);