I think it's safe to assume that fg/bg/bold (and others can be bit-fields within attribute. Attribute will be the portable representation that is mapped to appropriate implementation-specific flags at runtime. Otherwise we'll get very very very boring and long attribute list instead.