> ## Documentation Index
> Fetch the complete documentation index at: https://docs.neuro-tech.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Roles and signing parts

> Model signer categories, cardinality, revocation, and explicit parties

A **role** defines a category of signer. A **part** binds a Legal Identity to one role in a contract instance.

## Role fields

| Field        | Meaning                                                          |
| ------------ | ---------------------------------------------------------------- |
| `Name`       | Stable role identifier used by parts, parameters, and signatures |
| `MinCount`   | Minimum valid signatures required for the role                   |
| `MaxCount`   | Maximum parties/signatures permitted for the role                |
| `CanRevoke`  | Whether a signer in the role can revoke after signing            |
| Descriptions | Localized explanation of the role                                |

Role names are contract API identifiers. Do not translate them; translate their descriptions.

## Parts modes

| Mode                | Behavior                                        |
| ------------------- | ----------------------------------------------- |
| `Open`              | Anyone who satisfies the role rules can sign    |
| `TemplateOnly`      | The document is a template and cannot be signed |
| `ExplicitlyDefined` | Only listed Legal Identities can sign           |

## Example design

For a bilateral service agreement:

| Role       | Min | Max | Revoke |
| ---------- | --: | --: | ------ |
| `Provider` |   1 |   1 | No     |
| `Customer` |   1 |   1 | No     |

The instance lists one provider Legal ID and one customer Legal ID as parts. The contract becomes `Signed` only after both valid signatures exist.

## Role-reference parameters

A role parameter copies an approved Legal Identity property into a parameter slot when that role signs. This can bind contract text to facts such as organization name, country, or another identity property without manual re-entry.

If a required property is missing from the identity, role-parameter population fails. Clear populated role parameters before reassigning a part.

## Design guidance

* Use the minimum number of roles that expresses the legal relationship.
* Set bounded `MaxCount`; an unbounded role can change signature semantics.
* Explain revocation consequences in the human-readable section.
* Do not use an XMPP JID where a Legal Identity ID is required.
* Decide whether parties are fixed before proposal or selected when instantiating a template.
