Introduction
A part is a named container for modelling statements. Inside it, sketches, extrudes and cuts fuse and interact the way they do anywhere else; across its boundary, nothing fuses. A part is also the unit an assembly works with: only an exported part() definition can be inserted, mated and animated.
Part
part(name, callback) declares a named part. Everything the callback does — sketches, features, connectors, exposures, parameters — belongs to that part.
Param
param() declares a named value with a control, at the top of a part() body. The part's file shows it in the Parameters panel; an assembly sets it per instance. The return value is a plain number, string, boolean or array, so the rest of the body reads it like any variable: in a sketch guess, a dimension, an extrude distance, an if, a loop bound.
Connector
A connector is a named coordinate frame attached to the part's geometry — an origin, an X direction and a Z normal. Mates in an assembly join connectors to connectors, so the connectors a part declares are its mating interface. Every instance of the part carries the same set.
Expose
expose(name, source) publishes a piece of the part's geometry under a name. It is the outbound half of the part's interface: param() takes values in, connector() hands mate frames out, expose() hands geometry out.