changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "additionalProperties": false,
+ "anyOf": [
+ {
+ "required": [
+ "id",
+ "name",
+ "state",
+ "bookingSystem",
+ "provider",
+ "depth",
+ "pageUrl",
+ "bookingUrl",
+ "totalSites",
+ "siteTypes",
+ "amenities",
+ "maxStayNights",
+ "reservationWindowDays",
+ "priceRange",
+ "releaseRule",
+ "alert",
+ "season",
+ "description",
+ "checkedAt"
+ ]
+ },
+ {
+ "required": [
+ "found"
+ ]
+ }
+ ],
+ "description": "The details of one US campground, or found: false.",
+ "properties": {
+ "alert": {
+ "additionalProperties": false,
+ "properties": {
+ "available": {
+ "description": "True only when PermitSnag can send an alert for this place right now.",
+ "type": "boolean"
+ },
+ "pageUrl": {
+ "description": "The PermitSnag page where an alert is set up, or where to read what to do instead.",
+ "type": "string"
+ },
+ "reason": {
+ "description": "Why an alert is or is not on offer.",
+ "enum": [
+ "eligible",
+ "lottery_period",
+ "out_of_season",
+ "closed",
+ "no_quota_now",
+ "lottery_draw_only",
+ "not_sold_online",
+ "not_tracked"
+ ]
+ }
+ },
+ "required": [
+ "available",
+ "reason",
+ "pageUrl"
+ ],
+ "type": "object"
+ },
+ "amenities": {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 8,
+ "type": "array"
+ },
+ "bookingSystem": {
+ "type": "string"
+ },
+ "bookingUrl": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "checkedAt": {
+ "type": "string"
+ },
+ "depth": {
+ "description": "site_level: our checks count individual sites. campground_level: the booking system reports the campground as a whole.",
+ "enum": [
+ "site_level",
+ "campground_level"
+ ]
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "found": {
+ "const": false,
+ "description": "Present, and false, only when nothing matched."
+ },
+ "id": {
+ "type": "string"
+ },
+ "maxStayNights": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "pageUrl": {
+ "type": "string"
+ },
+ "priceRange": {
+ "additionalProperties": false,
+ "properties": {
+ "max": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "min": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "min",
+ "max"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "provider": {
+ "type": "string"
+ },
+ "releaseRule": {
+ "additionalProperties": false,
+ "description": "When sites go on sale, from the listing itself.",
+ "properties": {
+ "agencyQuote": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "daysAhead": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "kind": {
+ "type": "string"
+ },
+ "monthsAhead": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "readAt": {
+ "type": "string"
+ },
+ "sourceUrl": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "kind",
+ "monthsAhead",
+ "daysAhead",
+ "sourceUrl",
+ "agencyQuote",
+ "readAt"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "reservationWindowDays": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "season": {
+ "additionalProperties": true,
+ "description": "The agency's season or closure state, with agency words in quoted fields.",
+ "properties": {
+ "agency": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "agencyQuote": {
+ "description": "The agency's own words, capped.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "closedParts": {
+ "description": "Named parts that are closed while the rest stays open.",
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "agencyQuote": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "reopensOn": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "since": {
+ "type": "string"
+ },
+ "url": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "maxItems": 5,
+ "type": "array"
+ },
+ "closesOn": {
+ "description": "YYYY-MM-DD the agency says the season closes.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "closure": {
+ "additionalProperties": true,
+ "description": "A closure of the whole place, when the agency posted one.",
+ "properties": {
+ "agency": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "incident": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "readAt": {
+ "type": "string"
+ },
+ "reopensOn": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "since": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "url": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "offer": {
+ "description": "What the page offers in this season.",
+ "type": "string"
+ },
+ "opensOn": {
+ "description": "YYYY-MM-DD the agency says the season opens.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sourceUrl": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "state": {
+ "description": "The season state code, or null when nothing is published.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "offer",
+ "state"
+ ],
+ "type": "object"
+ },
+ "siteTypes": {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 6,
+ "type": "array"
+ },
+ "state": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "totalSites": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}