# Language
## Definitions
### Language (`Language`)
- **Type:** Object
Key | Description | Details
:-- | :-- | :--
`id` | The language's identifier. An unique, increasing integer. | See details
`continent` | The continents this language is present on. | See details
`specializations?` | Language-specific specializations. Either a list of possible options or a indefinite description of what may be a specialization. | See details
`prerequisites?` | | See details
`max_level?` | The maximum possible level of the language. Only specified if lower than default of 3. | See details
`src` | | See details
`translations` | All translations for the entry, identified by IETF language tag (BCP47). | See details
#### `id`
The language's identifier. An unique, increasing integer.
- **Type:** Integer
- **Minimum:** `1`
#### `continent`
The continents this language is present on.
- **Type:** List
- **Items:** Language/continent[]
- **Minimum Items:** `1`
#### `specializations?`
Language-specific specializations. Either a list of possible options or a indefinite description of what may be a specialization.
- **Type:** Specializations
#### `prerequisites?`
- **Type:** LanguagePrerequisites
#### `max_level?`
The maximum possible level of the language. Only specified if lower than default of 3.
- **Type:** Number
- **Default:** `3`
- **Minimum:** `1`
- **Maximum:** `2`
#### `src`
- **Type:** PublicationRefs
#### `translations`
All translations for the entry, identified by IETF language tag (BCP47).
- **Type:** LocaleMap<LanguageTranslation>
---
### `Language/continent[]`
- **Type:** AssociatedContinent
---
### `Specializations`
- **Type:** Union
- **Cases:** Specializations'Specific | Specializations'Indefinite
---
### `Specializations'Specific`
- **Type:** Object
Key | Description | Details
:-- | :-- | :--
`tag` | | See details
`specific` | | See details
#### `tag`
- **Constant:** `"Specific"`
#### `specific`
- **Type:** SpecificSpecializations
---
### `Specializations'Indefinite`
- **Type:** Object
Key | Description | Details
:-- | :-- | :--
`tag` | | See details
`indefinite` | | See details
#### `tag`
- **Constant:** `"Indefinite"`
#### `indefinite`
- **Type:** IndefiniteSpecializations
---
### `SpecificSpecializations`
- **Type:** Object
Key | Description | Details
:-- | :-- | :--
`list` | A list of specific possible specializations. | See details
#### `list`
A list of specific possible specializations.
- **Type:** List
- **Items:** SpecificSpecializations/list[]
- **Minimum Items:** `1`
---
### `SpecificSpecializations/list[]`
- **Type:** SpecificSpecialization
---
### `SpecificSpecialization`
- **Type:** Object
Key | Description | Details
:-- | :-- | :--
`id` | The specialization's identifier. An unique, increasing integer. | See details
`translations` | All translations for the entry, identified by IETF language tag (BCP47). | See details
#### `id`
The specialization's identifier. An unique, increasing integer.
- **Type:** Integer
- **Minimum:** `1`
#### `translations`
All translations for the entry, identified by IETF language tag (BCP47).
- **Type:** LocaleMap<SpecificSpecializationTranslation>
---
### `SpecificSpecializationTranslation`
- **Type:** Object
Key | Description | Details
:-- | :-- | :--
`name` | The name of the specialization. | See details
`description?` | The specialization description. It will be appended to the name in parenthesis. | See details
#### `name`
The name of the specialization.
- **Type:** NonEmptyString
#### `description?`
The specialization description. It will be appended to the name in parenthesis.
- **Type:** NonEmptyString
---
### `IndefiniteSpecializations`
- **Type:** Object
Key | Description | Details
:-- | :-- | :--
`translations` | All translations for the entry, identified by IETF language tag (BCP47). | See details
#### `translations`
All translations for the entry, identified by IETF language tag (BCP47).
- **Type:** LocaleMap<IndefiniteSpecializationsTranslation>
---
### `IndefiniteSpecializationsTranslation`
- **Type:** Object
Key | Description | Details
:-- | :-- | :--
`description` | The specializations description. | See details
`label?` | An input label or placeholder text for an UI element if it differs from the `description`. | See details
#### `description`
The specializations description.
- **Type:** NonEmptyString
#### `label?`
An input label or placeholder text for an UI element if it differs from the `description`.
- **Type:** NonEmptyString
---
### `LanguageTranslation`
- **Type:** Object
Key | Description | Details
:-- | :-- | :--
`name` | The name of the language. | See details
`alternative_names?` | A list of alternative names. | See details
`description?` | The description of the language. | See details
`errata?` | | See details
#### `name`
The name of the language.
- **Type:** NonEmptyString
#### `alternative_names?`
A list of alternative names.
- **Type:** List
- **Items:** LanguageTranslation/alternative_names[]
- **Minimum Items:** `1`
#### `description?`
The description of the language.
- **Type:** NonEmptyString
#### `errata?`
- **Type:** Errata
---
### `LanguageTranslation/alternative_names[]`
- **Type:** AlternativeName