code: func NewServer() minter.TokenMinterServer {
  	return &serverImpl{
  		MintMachineTokenRPC: machinetoken.MintMachineTokenRPC{
  			Signer:           gaesigner.Signer{},
  			CheckCertificate: certchecker.CheckCertificate,
  			LogToken:         machinetoken.LogToken,
  		},
  		MintDelegationTokenRPC: delegation.MintDelegationTokenRPC{
  			Signer:   gaesigner.Signer{},
  			Rules:    delegation.GlobalRulesCache.Rules,
  			LogToken: delegation.LogToken,
  		},
  		MintOAuthTokenGrantRPC: serviceaccounts.MintOAuthTokenGrantRPC{
  			Signer:   gaesigner.Signer{},
  			Rules:    serviceaccounts.GlobalRulesCache.Rules,
  			LogGrant: serviceaccounts.LogGrant,
  		},
  		MintOAuthTokenViaGrantRPC: serviceaccounts.MintOAuthTokenViaGrantRPC{
  			Signer:          gaesigner.Signer{},
  			Rules:           serviceaccounts.GlobalRulesCache.Rules,
  			MintAccessToken: auth.MintAccessTokenForServiceAccount,
  			LogOAuthToken:   serviceaccounts.LogOAuthToken,
  		},
  		MintProjectTokenRPC: projectscope.MintProjectTokenRPC{
  			Signer:            gaesigner.Signer{},
  			MintAccessToken:   auth.MintAccessTokenForServiceAccount,
  			ProjectIdentities: projectidentity.ProjectIdentities,
  			LogToken:          projectscope.LogToken,
  		},
  	}
  }
docs: // NewServer returns prod TokenMinterServer implementation.
  //
  // It does all authorization checks inside.