If parameters are not known or are not applicable, they will have a value of undefined.
Parameter
Type
Mandatory
Notes
body
String
The body component, if known.
propulsion
String
The propulsion component, if known.
turret1
String
The first turret, if known.
turret2
String
The second turret, if known / applicable.
turret3
String
The third turret, if known / applicable.
Return value
The return value should be an object stating the cost and whether you are certain (boolean) about the cost.
For example, if all main components are specified (body, propulsion, turret1) and you know the costs of them, you can be pretty certain about the cost.
Notes
The result will usually be cached to some extent, but it's worth adding your own caching to the function where applicable to do so.