Дядя Богдан,
1. Ты в своём же примере дал такое: Color color = Rarity.Rare - так можно сделать, если написать как я показал.
2. Rarity rarity = Rarity.Rare; - а вот так ты сможешь, если напишешь так:
public record Rarity(Color color) {
public static Rarity Rare {get;} = new Rarity(new Color(255,255,255));
}
Через switch в любом случае не сможешь обрабатывать это