# The venue object

Attributes:
- `id` (string): Venue identifier (`ven_<digits>`).
- `name` (string, nullable): The display name at `valid_at` as known at the cutoff (sponsor names are display names of their period); `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`.
- `territory` (string, nullable): ISO 3166-1 alpha-2 (a commercial territory, not an association code); `null` when unknown.
- `city` (string, nullable)
- `latitude` (string, nullable): WGS84 coordinate in decimal degrees as an exact decimal string with up to six fraction digits, never a JSON number.
- `longitude` (string, nullable): WGS84 coordinate in decimal degrees as an exact decimal string with up to six fraction digits, never a JSON number.
- `capacity` (integer, nullable)
- `opened_year` (integer, nullable)
- `timezone` (string, nullable): IANA zone name, for presenting local kickoffs; `null` when unknown.
- `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.
- `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": "ven_1",
  "name": "Northbridge Park",
  "name_status": "known",
  "territory": "GB",
  "city": "Northbridge",
  "latitude": null,
  "longitude": null,
  "capacity": null,
  "opened_year": null,
  "timezone": null,
  "resolution": {
    "requested_id": "ven_1",
    "canonical_id": "ven_1",
    "status": "canonical",
    "decision_id": null,
    "decided_at": null
  },
  "knowledge": {
    "known_at": "2026-10-04T09:00:00Z",
    "as_requested": false
  },
  "sources": {
    "status": "withheld",
    "items": []
  }
}
```
