Hi Brian,
o2 uses curly braces to assign default values:
'DEFAULT MEMBER VALUES
type color
byte r=0x10
byte g=0x20
'g as byte =0x20
byte b=0x30
byte a=0x40
end type
color d 'sets all to null
print hex(d.r) ", " hex(d.g) ", " hex(d.b) ", " hex(d.a)
d={} 'sets all to default values
print hex(d.r) ", " hex(d.g) ", " hex(d.b) ", " hex(d.a)
d={g=0x25,b=0x35} 'default values with overrides
print hex(d.r) ", " hex(d.g) ", " hex(d.b) ", " hex(d.a)