# The competition object

Attributes:
- `id` (string): Competition identifier (`cmp_<digits>`).
- `name` (string, nullable): The display name at the date (names are dated, and a sponsor rename never changes the identifier); `null` with `name_status: unavailable` when no dated name exists.
- `name_status` (enum): Says why a nullable `name` is or is not served: `known` = a dated name applies at `valid_at` as known at the cutoff; `unavailable` = the entity exists but has no dated name at that date (for example a team known from a source that reports no names); `withheld` = a name exists but the rights of its sources do not allow serving it to you. An entity is never a 404 for lacking a name. One of: `known`, `unavailable`, `withheld`.
- `association_code` (string, nullable): Member association of a national competition; `null` when a confederation or FIFA organises it (see `organiser`).
- `organiser` (enum): Who organises a competition or registers a side. `national_association` means the sibling `association_code` names the member association; a confederation or `FIFA` organises competitions that have no country and the sibling is `null`. One of: `national_association`, `UEFA`, `CONMEBOL`, `CONCACAF`, `AFC`, `CAF`, `OFC`, `FIFA`.
- `competition_kind` (enum): The kind of competition. One of: `league`, `cup`, `international`, `friendly`.
- `tier` (integer, nullable): 1 = top division; `null` when unknown (no sibling status exists yet).
- `seasons` (array of objects)
  - `id` (string): Season identifier (`ssn_<digits>`).
  - `label` (string)
  - `starts_on` (date)
  - `ends_on` (date)
- `sources` (object): Source references, or an explicit statement that they are withheld by source rights or unknown.
  - `status` (enum):  One of: `included`, `withheld`, `unknown`.
  - `items` (array of objects)
    - `source` (string): Source namespace (for example `footystats`).
    - `observed_at` (timestamp, nullable): A `Timestamp`, or `null` when unknown; the owning object says why.
    - `recorded_at` (timestamp): RFC 3339 instant in UTC with `Z` suffix; optional fractional seconds up to microseconds.
    - `precision` (enum): Precision of the source timestamp; `unknown` when the source gave none. One of: `unknown`, `day`, `hour`, `minute`, `second`, `millisecond`.

Example:

```json
{
  "id": "cmp_1",
  "name": "Synthetic Premier Division",
  "name_status": "known",
  "association_code": "SYN",
  "organiser": "national_association",
  "competition_kind": "league",
  "tier": 1,
  "seasons": [
    {
      "id": "ssn_1",
      "label": "2026/27",
      "starts_on": "2026-08-01",
      "ends_on": "2027-05-31"
    }
  ],
  "sources": {
    "status": "included",
    "items": [
      {
        "source": "synthetic_alpha",
        "observed_at": null,
        "recorded_at": "2026-09-01T00:00:00Z",
        "precision": "unknown"
      },
      {
        "source": "synthetic_beta",
        "observed_at": null,
        "recorded_at": "2026-09-01T00:00:00Z",
        "precision": "unknown"
      }
    ]
  }
}
```
