The fragment handler API should support argument interpolation using the KeyValuePairPFragment class.
For example, given a {{#kv}} parser function which returns its arguments as a KeyValuePairPFragment, the following invocation:
{{#pf:{{#kv:a=b|c=d}}}}should be equivalent to:
{{#pf:a=b|c=d}}That is, it should be possible for the {{#pf}} implementation to see a=b and c=d in its argument list, as opposed to seeing (say) a=b|c=d as the first ordered parameter. If this introduces compatibility problems this may need to be opt-in behavior, for example by calling $args->interpolate() or some such.
This should also eventually (T390342) work for extension tag syntax:
<ext {{#kv:a=b|c=d}}>...</ext>should be equivalent to
<ext a="b" c="d">...</ext>