For example when registering a domain name, some TLDs require additional fields such as registrant type (individual/organisation).
return new Rules([
// ...
'additional_fields' => ['upmind_dynamic_rules:getRegisterAdditionalFieldRules'],
// ...
]);
This allows the provision system client to build a dynamic html form for domain registrations, once it knows which tld the customer wants to register a domain for, and once it has determined which provision provider to use.
Caching the dynamic rules (per provider + tld and perhaps per provision configuration) should negate any performance impact of the blocking call to getRegisterAdditionalFieldRules().