No. Easily doable with a bit of scripting in your own scenario or unit, though.
var Button = Self:AddActioner("ToCrossbow")
Button.Details = "Upgrade to Crossbowman"
Button.ExtendedDetails = "200 Experience required."
Button.Icon = "Icons/crossbowman"
if Self.Experience>=200 then
elseif Self.Experience<200 then
NotifyPlayer(200-Self.Experience.." experience required to upgrade to crossbow")
It's that easy! I just typed that up in a few minutes. The "Button.Func" runs when the button is pressed. You could have anything in the button's function.
This is but an example of how easy it will be for users to drastically change the game with a small bit of editing.