When to use nested-types?

Any time you have the name of a type in front of another type, the latter should be nested. String.Color.Type unfortunately doesn't work; .Type is the exception.