# Planning facts

Beyond the description and photos, a spot carries structured facts buyers plan with. Each has a shape in the [field reference](https://developers.sceniq.earth/fields.md). The same rules hold for all of them.

## Rules for every fact

- **From the creator or a named source.** Put the evidence in `sources` (the page, when it was read, which facts it backs). Sources are for the creator's review; buyers never see them.
- **Full replacement.** Lists replace the whole list: send every entry you want to keep. `[]` clears a list, `null` clears an object, an empty string clears text.
- **Dates expire.** Give dated facts their dates: `until` on a status notice, `validFrom` and `validUntil` on fees and hours, `factsCheckedOn` and `reviewBy` on the row. Readiness and [list_stale_notices](https://developers.sceniq.earth/reference/list_stale_notices.md) list everything that ran out.
- **Say when there is none.** `arrival.byTrainBus.none` for no public transport, a fee with `seeOfficial` for a price left to the official page on purpose, `food.status: none_nearby`. These read differently from an empty field.
- **Keep the creator's words.** `costRaw` and `openRaw` stay as written; add the structure next to them.

## On a spot

| Fact | Shape | For |
|---|---|---|
| How to get there | [Arrival](https://developers.sceniq.earth/fields/arrival.md) | By car, public transport, boat, air, on foot, by bike, whole approaches as legs, access rules by month |
| Opening hours | [Schedule](https://developers.sceniq.earth/fields/schedule.md) | Bands by date and weekday, sunrise and sunset anchors, special days, timed slots |
| Fees and tickets | [Fee](https://developers.sceniq.earth/fields/fee.md) | Amount, currency, who pays what, where, validity |
| Closures | [StatusNotice](https://developers.sceniq.earth/fields/status-notice.md) | Closed, partly closed or reopening, with dates |
| Links | [GuideLink](https://developers.sceniq.earth/fields/guide-link.md) | Official page, tickets, live status, timetables |
| Extra points | [SpotPin](https://developers.sceniq.earth/fields/spot-pin.md) | Viewpoints, entrances, trailheads, parking |
| Rules on site | [Restriction](https://developers.sceniq.earth/fields/restriction.md) | No drones, no photos, no stopping, with a place |
| Parts with their own rules | [SpotFeature](https://developers.sceniq.earth/fields/spot-feature.md) | A ticketed skyway, a museum inside a park |
| Events | [SpotEvent](https://developers.sceniq.earth/fields/spot-event.md) | Light shows, festivals, tides |
| The stats bar | [TripFacts](https://developers.sceniq.earth/fields/trip-facts.md) | Elevation, crowds, best season |

`accessMode` sets the Accessibility cell (drive_up, short_walk, hike, boat ...). `timeZone` comes from the pin; set it only when the lookup is wrong near a border.

## Areas: rules for a whole park or island

Fees, road seasons and permits that apply to a whole park, island or region live once in an area ([set_area](https://developers.sceniq.earth/reference/set_area.md), shape [Area](https://developers.sceniq.earth/fields/area.md)). Spots point at it with `areaId` and buyers see the area's rules on each of them.

## Places

Stays, transport, tours, food and parking are places: [create_facility](https://developers.sceniq.earth/reference/create_facility.md). Give them a pin (`lat`, `lon`) so the apps map them and show the distance to the spot; a text-search map link alone can open a namesake. Transport, tours and parking have their own details ([TransportInfo](https://developers.sceniq.earth/fields/transport-info.md), [ActivityInfo](https://developers.sceniq.earth/fields/activity-info.md), [ParkingInfo](https://developers.sceniq.earth/fields/parking-info.md)). Link a place to spots with `spotKeys`, or to a route with [set_route_facilities](https://developers.sceniq.earth/reference/set_route_facilities.md).

## Routes

A route is a hike, walk, ride, drive, ski tour or paddle: [create_route](https://developers.sceniq.earth/reference/create_route.md) with its grade and scale, duration and what it counts (`durationBasis`), gain, distance, the line from the creator's GPX or KML (at most 1,000 points), its season and where each number comes from (`figureSources`). [set_route_spots](https://developers.sceniq.earth/reference/set_route_spots.md) links the spots it reaches; `role: optional` marks a walk from a spot that is not the way in.
