# The result object

Attributes:
- `id` (string): Result identifier (`res_<digits>`).
- `version` (integer)
- `status` (enum): `pending` = not yet (no kind, no scores); `provisional` = reported but not settled; `final` = settled (`decided_at` set). One of: `pending`, `provisional`, `final`.
- `result_kind` (enum, nullable): How the match was decided (`played`, `awarded`, `annulled`, `abandoned`); `null` exactly while `status` is `pending`. One of: `played`, `awarded`, `annulled`, `abandoned`.
- `score_ht` (object, nullable): A score pair for one period; both sides or neither (the owning `status` says why a pair is `null`).
  - `home` (integer)
  - `away` (integer)
- `score_ft` (object, nullable): A score pair for one period; both sides or neither (the owning `status` says why a pair is `null`).
  - `home` (integer)
  - `away` (integer)
- `score_et` (object, nullable): A score pair for one period; both sides or neither (the owning `status` says why a pair is `null`).
  - `home` (integer)
  - `away` (integer)
- `score_pens` (object, nullable): A score pair for one period; both sides or neither (the owning `status` says why a pair is `null`).
  - `home` (integer)
  - `away` (integer)
- `retracted` (boolean): True when this version retracts the result.
- `decided_at` (timestamp, nullable): Settlement time; `null` while pending (and optionally while provisional).
- `recorded_at` (timestamp): RFC 3339 instant in UTC with `Z` suffix; optional fractional seconds up to microseconds.
- `fixture_id` (string): Fixture identifier (`fx_<digits>`).
- `versions` (array of objects): Every version recorded by the cutoff, oldest first; the top-level fields repeat the last one.
  - `id` (string): Result identifier (`res_<digits>`).
  - `version` (integer)
  - `status` (enum): `pending` = not yet (no kind, no scores); `provisional` = reported but not settled; `final` = settled (`decided_at` set). One of: `pending`, `provisional`, `final`.
  - `result_kind` (enum, nullable): How the match was decided (`played`, `awarded`, `annulled`, `abandoned`); `null` exactly while `status` is `pending`. One of: `played`, `awarded`, `annulled`, `abandoned`.
  - `score_ht` (object, nullable): A score pair for one period; both sides or neither (the owning `status` says why a pair is `null`).
    - `home` (integer)
    - `away` (integer)
  - `score_ft` (object, nullable): A score pair for one period; both sides or neither (the owning `status` says why a pair is `null`).
    - `home` (integer)
    - `away` (integer)
  - `score_et` (object, nullable): A score pair for one period; both sides or neither (the owning `status` says why a pair is `null`).
    - `home` (integer)
    - `away` (integer)
  - `score_pens` (object, nullable): A score pair for one period; both sides or neither (the owning `status` says why a pair is `null`).
    - `home` (integer)
    - `away` (integer)
  - `retracted` (boolean): True when this version retracts the result.
  - `decided_at` (timestamp, nullable): Settlement time; `null` while pending (and optionally while provisional).
  - `recorded_at` (timestamp): RFC 3339 instant in UTC with `Z` suffix; optional fractional seconds up to microseconds.
- `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.
- `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`.
- `provenance` (object): `include=provenance`: for every field whose value OddsFinder chooses among several sources, the source report its ranking of sources selects among those recorded by the cutoff. The served value is in the body; this block says where it came from. `policy` identifies the ranking used (sport and version).
  - `policy` (object)
    - `sport` (string)
    - `version` (integer)
  - `fields` (map)
    - `status` (enum):  One of: `known`, `unavailable`, `no_observation`, `withheld`.
    - `provider` (string, nullable): A source provider or namespace name (`footystats`, `football`).
    - `namespace` (string, nullable): A source provider or namespace name (`footystats`, `football`).
    - `source_time` (timestamp, nullable): A `Timestamp`, or `null` when unknown; the owning object says why.
    - `source_time_precision` (enum, nullable):  One of: `unknown`, `day`, `hour`, `minute`, `second`, `millisecond`.
    - `observed_at` (timestamp, nullable): A `Timestamp`, or `null` when unknown; the owning object says why.
    - `recorded_at` (timestamp, nullable): A `Timestamp`, or `null` when unknown; the owning object says why.

Example:

```json
{
  "id": "res_1",
  "version": 1,
  "status": "pending",
  "result_kind": null,
  "score_ht": null,
  "score_ft": null,
  "score_et": null,
  "score_pens": null,
  "retracted": false,
  "decided_at": null,
  "recorded_at": "2026-09-01T09:00:00Z",
  "fixture_id": "fx_1",
  "versions": [
    {
      "id": "res_1",
      "version": 1,
      "status": "pending",
      "result_kind": null,
      "score_ht": null,
      "score_ft": null,
      "score_et": null,
      "score_pens": null,
      "retracted": false,
      "decided_at": null,
      "recorded_at": "2026-09-01T09:00:00Z"
    }
  ],
  "knowledge": {
    "known_at": "2026-10-04T09:00:00Z",
    "as_requested": false
  },
  "sources": {
    "status": "included",
    "items": [
      {
        "source": "synthetic_alpha",
        "observed_at": null,
        "recorded_at": "2026-09-01T09:00:00Z",
        "precision": "unknown"
      }
    ]
  }
}
```
