ScratchTarget contains all common fields that ScratchScene and ScratchSprite will have; I know that all of the JSON array entries will have fields from that class.ScratchScene, and some will be of type ScratchSprite. I have a isStage field in ScratchTarget that informs me of the type of said ScratchTarget. List<ScratchTarget>, with the JSON.NET deserializer also converting the extra fields by picking either ScratchScene or ScratchSprite?