Session::tryCreateService will try to create an instance of ServiceT by forwarding the given arguments to the ServiceT::Create method, which must return an Expected<std::unique_ptr<ServiceT>>. This enables one-line construction and registration of Services with fallible constructors (which are expected to be common).