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.