user: Give a detailed overview of Fingers & Tentacles: syntax, arguments, return values, common patterns.

assistant: ### Simple Tentacle

[image reference removed]

The simplest type of rig for a finger or appendage in general is the
[simple tentacle](rig_types/limbs.xhtml#rigify-rigs-limbs-simple-tentacle) sub-rig. It has only basic FK controls and tweaks,
with the only automation being the ability to copy certain axes of the local rotation of a FK control to the next one.

### Advanced Finger

[image reference removed]

For fingers specifically, Rigify has a dedicated [finger](rig_types/limbs.xhtml#rigify-rigs-limbs-super-finger) sub-rig type,
which provides:

Master
:   A master control (orange), which can be used to rotate the finger as a whole, as well as to bend it via Y scaling.

FK Chain
:   FK control chain (green) that can also operate as semi-tweaks through allowing translation.

IK Control Optional
:   IK control for the tip (red).

The properties panel has the following features:

[image reference removed]

Finger IK Slider Optional
:   Slider controlling the influence of the IK.

FK<->IK Snapping Buttons Optional
:   Snaps the IK control to the end of the finger, or adjusts the FK controls to the result of the IK correction.

Curvature Slider
:   Has the same effect as *Rubber Tweak* on limbs, controlling the rubber hose cartoon effect.

### Spline Tentacle

[image reference removed]

Spline Tentacle (Stretch To Fit, Manual Squash & Stretch)

[image reference removed]

Spline Tentacle (Direct Tip Control)

The [spline tentacle](rig_types/limbs.xhtml#rigify-rigs-limbs-spline-tentacle) is an advanced rig for a flexible appendage (tentacle)
based on the [Spline IK](../../../animation/constraints/tracking/spline_ik.xhtml) constraint. The IK control bones manage
control points of a Bezier spline curve, which in turn is followed by the IK chain.

The tentacle can be generated in three major modes:

Stretch To Fit
:   In this simplest mode all bones of the sub-rig deform chain follow the curve and squash & stretch to match
    its length.

Manual Squash & Stretch
:   This mode is almost the same, but the chain does not automatically scale to match the curve length.
    Instead, it tries to cover as much as possible of the curve given its manually scaled length.
    If the curve is too short, the chain will overhang it and straighten out, but this can result in jitter.

Direct Tip Control
:   This mode is more similar to the behavior of IK limbs: the final bone of the chain is directly controlled by
    the tip IK control, while the other bones of the chain stretch and follow the curve to bridge the gap.

The tentacle sub-rig has the following control bones:

Master
:   The tentacle has the same gear master control as other limbs (seen as a line in the images).

IK Start
:   The IK control at the base of the tentacle, which can be used to control the base twist and sideways scale, and
    is one of the potential switchable parents for other IK controls.

    In the *Manual Squash & Stretch* mode it controls uniform scale of the tentacle in all directions.

IK Start (Extra) Optional
:   Extra start controls, optional and hidden by default. Switchable parents default to the *IK Start* control.
    The scale of the control may optionally affect the thickness of the chain via the radius of the curve point.

IK Middle
:   Controls for the middle of the curve. The switchable parents default to *Master*, but may be set to
    *IK Start* or *IK End* controls.
    The scale of the control may optionally affect the thickness of the chain via the radius of the curve point.

IK End (Extra) Optional
:   Extra end controls, optional and hidden by default. Switchable parents default to the *IK End* control.
    The scale of the control may optionally affect the thickness of the chain via the radius of the curve point.

    The *Direct Tip Control* mode adds one more extra end control next to the middle ones that cannot be hidden.

IK End
:   Controls the last control point of the curve, and is one of the potential parents for the other chain controls.

    In the *Direct Tip Control* mode also directly controls the last bone of the chain.

IK End Twist Optional
:   This control is visually attached to the last bone of the chain, and must use Euler rotation.

    - *Stretch To Fit*: it controls the twist of the tip of the tentacle, interpolated to nothing at the base.
    - *Manual Squash & Stretch*: it also controls the scaling of the tip of the tentacle.
    - *Direct Tip Control*: the control does not exist.

FK Chain Optional
:   If enabled, the rig has an alternative fully FK control chain.

The properties panel has the following features:

[image reference removed]

Start/End Controls Optional
:   If extra controls exist, this property controls how many of them are visible and active.

    When a control is disabled, it is snapped to a position extremely close to the corresponding end control point,
    thus effectively neutralizing its effect. Thus, changing the setting during an animation can cause jumps.

    The plus and minus buttons can help with maintaining a continuous transition in an animation by keyframing the
    change in the property value with Constant interpolation, and also snapping and keyframing the control itself
    to its ‘hidden’ position.

End Twist Estimate Optional
:   In the *Direct Tip Control* mode the twist at the end of the tentacle is deduced from the free form orientation
    of the tip control, rather than using a separate twist control with constrained Euler rotation. However, for
    technical reasons, that can only give values within the 180 degrees range of neutral.

    A long tentacle can accept more twist than 180 degrees, so a workaround is necessary. This property allows
    specifying an approximate estimate of the twist value (effectively shifting the neutral position), and the
    rig then applies the automatic correction within 180 degrees of this value.

IK-FK, IK<->FK Snapping Optional
:   If the FK controls are enabled, these provide standard IK-FK switching and snapping.

    However, unlike other limbs, for this rig automatic IK to FK snapping can only be approximate and requires
    manual tuning. For this reason, buttons for baking the snapping over a range of keyframes are not provided.

Parent Switch
:   Switches the parent of the selected IK control.