# Language Motation

## What is Language Motation?

The language Motation object is a dependency of a content Motation. It defines any languages related to a content Motation.

## Structure

Below is the structure of the language Motation object and what each attribute is for. Every source connector that supports language Motation objects must create a language Motation with the required fields. And every destination connector supports language Motation objects must support a language 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.
* languages (\*array | required) List of languages associated with a content Motation.
  * id (\*object | required) ID of the language.&#x20;
    * value (\*string | required) Single ID of the language. Always an Impulse ID.
    * label (\*string | optional) Label of the ID.&#x20;
  * name (\*string | required) Name of the language.
  * code (\*string | required) Code of the language.&#x20;
  * countryName (\*string | optional) Country name the language is for.&#x20;
  * countryCode (\*string | optional) Country code the language is for.&#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 language 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;
