A VT component is just a component as defined by the configuration-design ontology, except that we define a slot for the cost.
(<= (Has-Parameter-Slot $X Component.Cost) (Vt-Component $X)) (Or (Number ?Value) (String ?Value) (Vt-Component ?Value) (Component-Class ?Value)) (<=> (Value-Allowed-For-Vt-Term ?Value) (Or (Number ?Value) (String ?Value) (Vt-Component ?Value) (Component-Class ?Value)))
That assumes linear combination function for cost, which is a domain specific assumption.