although an Endpoint is essentially represented by a Type (which is why the Type is a req constructor parameter) there are other associated properties - which used to be static helper methods which operated on any old type but should really be encapsulated.

if this was a POCO class, where would the getter behaviours sit?  I made it a separate class to encapsulate the getter logic - rather than having a bunch of static methods lying around.