readColor function
Reads a ColorValue as a Vector4 (RGBA), or returns fallback.
Implementation
Vector4? readColor(Map<String, PropertyValue> props, String key) {
final v = props[key];
return v is ColorValue ? Vector4(v.r, v.g, v.b, v.a) : null;
}