Return a string based on Type, Color and Position
public override string ToString() 
    =&gt; ((int)Type &gt; 99 ? "t" : "s") 
    + ((int)Type &gt; 99 ? ((int)Type).ToString().Remove(0, 1) : ((int)Type &lt; 10 ? "0" + (int)Type : "" + (int)Type)) 
    + ((int)Color &lt; 10 ? "0" + (int)Color : "" + (int)Color) 
    + (int)Position;



You definitely should split it in a exactly four methods/variables:

Method 1: GetPrefix

((int)Type &gt; 99 ? "t" : "s")


Method 2: FormatSomething, sorry, I don't know what.

((int)Type &gt; 99 ? ((int)Type).ToString().Remove(0, 1) : ((int)Type &lt; 10 ? "0" +  (int)Type : "" + (int)Type)) 


Method 3: FormatColor:

((int)Color &lt; 10 ? "0" + (int)Color : "" + (int)Color)


Method 4: FormatPosition - this might be unnecessary but because all other formattings are method let's make this consistant.

(int)Position


Finally your ToString would look like this:

public override ToString() =&gt; 
    $"{GetPrefix()}{FormatSomething()}{FormatColor()}{FormatPosition()}"


and nobody asks any more questions about what your method is doing.