This class is public but is effectively useless because nobody else will ever be able to set properties on it.  This may not be a problem, but if the goal is to make it immutable consider defining these as { get; private set; } and providing a constructor to set them just in case someone wants to create one of these things outside of this library.