I think it would be safer for `DescriptionBuilder` to have a constructor that takes these fields, so it won't be possible to create a builder where `displayName` is null. I realize that two of these parameters are strings, so it's possible t get the ordering swapped, but that could be caught by a test.