See below for comments on handling `null` and `undefined`.  I don't think it makes any sense to have a `TextLiteral` with `undefined` `color` or `fontFamily`.  These should be populated with the defaults at this point (we don't want to use the browser defaults).

If we add in handling for `haloColor` or something similar, it would make sense to allow `undefined` - as we need some way to indicate "no halo."  But I don't think there's a reason to indicate "no color."