For 1 just use map on the first property to set convention on the second. This way downstream users could have default with just changed extension and override it if they need it.
If you really want 2 -- don't expose it as a property, just use map on input property to get a provider. Than downstream users can't modify it and you'll have it always aligned that way