Servant supports registering internal and private types, but the factory methods must be public. This disallows a use case where a public type depends upon an internal one and is constructed via a factory, as if the factory must be public, it cannot have a parameter of internal type.
Allow non-private constructors/factory methods (meaning internal as well as the current public), allowing types to remain internal. Add a unit test for this with types that illustrate the problem, which would fail to run currently. Update API documentation and README.