Snap
An object that holds two objects rigidly together. Most commonly created when BasePart:MakeJoints() is called on parts where Inlet and Stud Enum.SurfaceType are touching.
Functionally identical to Weld.
See also WeldConstraint for a newer alternative using the constraints system that does not require C0 or C1 properties to be manually set.
Root part
Every Assembly has a root part, see BasePart:GetRootPart(). When a Snap's C0/C1 is modified the root part will stay where it was.
Directionality
Snaps do not have any directionality. Part0 or Part1, doesn't matter. You can imagine rigid joints forming a tree branching down from the root part. All the parts down the tree from root will move, and their welded "children" in this tree will move with them.
Summary
Properties
Properties inherited from JointInstanceDetermines if the joint is currently active in the world.
Determines how the offset point is attached to JointInstance.Part0.
Is subtracted from the JointInstance.C0 property to create an offset point for JointInstance.Part1.
Sets whether the joint is active or not.
The first BasePart that the joint connects.
The second BasePart that the joint connects.