> For the complete documentation index, see [llms.txt](https://motivlabs.gitbook.io/impulse-dev-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://motivlabs.gitbook.io/impulse-dev-manual/motation/relationship-motation.md).

# Relationship Motation

## What is Relationship Motation?

The relationship Motation object is a dependency of a content Motation. It defines any relationships related to a content Motation.

## Structure

Below is the structure of the relationship Motation object and what each attribute is for. Every source connector that supports relationship Motation objects must create a relationship Motation with the required fields. And every destination connector supports relationship Motation objects must support a relationship Motation with only the required fields.&#x20;

* systems (\*array | required) The system that the Motation came from.
  * name (\*string | required) Name of the system.
  * date (\*string | required) Date the Motation was built from the system.
  * version (\*string | optional) Version of the system.
* relationships (\*array | required) List of relationships associated with a content Motation.&#x20;
  * id (\*object | required) ID of the relationship.&#x20;
    * value (\*string | required) Single ID of the relationship. Always an Impulse ID.&#x20;
    * label (\*string | optional) Label of the ID.&#x20;
  * definition1FieldId (\*string | required) Field ID for definition 1 (parent definition). Matches field ID in definition Motation.&#x20;
  * definition2FieldId (\*string | required) Field ID for definition 2 (child definition). Matches field ID in definition Motation.&#x20;
  * definition1FieldName (\*string | required) Field name for definition 1 (parent definition). Matches field name in definition Motation.&#x20;
  * definition2FieldName (\*string | required) Field name for definition 2 (child definition). Matches field name in definition Motation.&#x20;
  * definition1Id (\*string | required) ID for definition 1 (parent definition). Matches ID in definition Motation.&#x20;
  * definition2Id (\*string | required) ID for definition 2 (child definition). Matches ID in definition Motation.&#x20;
  * cardinality (enum | required) The Motation cardinality of relationship. "ManyToMany," "OneToMany," "ManyToOne," or "OneToOne."&#x20;
  * system (object | optional) Key/Value repository specific values.&#x20;
* key (\*object | required) Used to create a unique ID based on a hash of values from fields.&#x20;
  * fields (\*array | required) The fields in the domain Motation to use to build the hash.&#x20;
    * name (\*string | required) Name of the field to use in the hash ID.&#x20;
    * id (\*object | required) ID of the field.
      * value (\*string | required) Single ID of the field.
      * label (\*string | optional) Label of the field.&#x20;
* audit (\*array | required)
  * date (\*string | required) Date the raw data was picked up.
  * user (\*object | optional) User that picked up the definition.&#x20;
    * id (\*object | required) ID of the user.
      * value (\*string | required) Single ID value for the user. Always Impulse ID.&#x20;
      * label (\*string | optional) Label for the ID.&#x20;
    * name (\*string | optional) Name associated with the user.&#x20;
    * email (\*string | optional) Email associated with the user.&#x20;
    * username (\*string | optional) Username associated with the user.&#x20;
