# The fixture officials object

A fixture's officials as known at the cutoff (`GET /v1/fixtures/{id}/officials`).

Attributes:
- `fixture_id` (string): Fixture identifier (`fx_<digits>`).
- `status` (enum): `available` = the officials are served; `unavailable` = no official is known for the fixture at the cutoff; `withheld` = officials exist but a source of them holds no right to serve officials to this caller. One of: `available`, `unavailable`, `withheld`.
- `officials` (array of objects): Referee, assistant referees by `role_order`, fourth official, video assistant; empty unless `status` is `available`.
  - `id` (string): Match official identifier (`mo_<digits>`).
  - `version` (integer)
  - `person_id` (string): The official, canonical at the cutoff.
  - `role` (enum):  One of: `referee`, `assistant_referee`, `fourth_official`, `video_assistant`.
  - `role_order` (integer, nullable): 1 and 2 for the first and second assistant referee; `null` for a role held once (not applicable).
  - `recorded_at` (timestamp): When the platform recorded this version (`known_at` compares against it).
- `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`.
- `knowledge` (object): The effective knowledge cutoff of the response. Under a grant freshness delay it is never later than the request time minus the delay, whatever `known_at` asked for.
  - `known_at` (timestamp): RFC 3339 instant in UTC with `Z` suffix; optional fractional seconds up to microseconds.
  - `as_requested` (boolean): True when the caller supplied `known_at`; false when it defaulted to the request time.
- `resolution` (object): How the requested identifier resolved. Present whenever the requested identifier is not the canonical one, and optional otherwise.
  - `requested_id` (string): OddsFinder identifier, `<prefix>_<digits>`, a per-kind sequence number without padding, leading zeros, grouping or sign (1 to 9223372036854775807). The prefix names the kind; the per-kind schemas fix it where a field or parameter has one kind. `Resolution` uses this generic form because its identifiers are of the resource's kind.
  - `canonical_id` (string): OddsFinder identifier, `<prefix>_<digits>`, a per-kind sequence number without padding, leading zeros, grouping or sign (1 to 9223372036854775807). The prefix names the kind; the per-kind schemas fix it where a field or parameter has one kind. `Resolution` uses this generic form because its identifiers are of the resource's kind.
  - `status` (enum): `canonical`: the requested identifier is the identity itself; `alias`: it was retired by a merge decision and resolves to `canonical_id`. One of: `canonical`, `alias`.
  - `decision_id` (string, nullable): Identifier of a merge or reversal decision (`dec_<digits>`), a record you can cite.
  - `decided_at` (timestamp, nullable): A `Timestamp`, or `null` when unknown; the owning object says why.

Example:

```json
{
  "fixture_id": "fx_1",
  "status": "withheld",
  "officials": [],
  "knowledge": {
    "known_at": "2026-10-03T16:00:00Z",
    "as_requested": false
  }
}
```
