Figma Token Studio provides Shadow token values as Objects (similarly to a composition token)
However, unlike a composition token they have a predictable schema that we can build a struct from.
ShadowValue stores these values as a Vec of ShadowLayer structs that can be either a drop shadow
or an inner shadow.
A TokenDefinition stores the raw data of a token, with a generic property denoting the type of token (Standard, Shadow, Composition, etc.)
Most tokens are expressed as Standard tokens - where the value is a simple String, although Shadow and Composition tokens require
different serialization methods, and therefore we can impl get_value for each type.