changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "additionalProperties": false,
+ "anyOf": [
+ {
+ "required": [
+ "id",
+ "slug",
+ "name",
+ "park",
+ "usState",
+ "pageUrl",
+ "officialUrl",
+ "issuance",
+ "scanRoute",
+ "alert",
+ "season",
+ "agencyDates",
+ "releaseRules",
+ "groupSizeLimit",
+ "description",
+ "checkedAt"
+ ]
+ },
+ {
+ "required": [
+ "found"
+ ]
+ }
+ ],
+ "description": "The rules and sourced dates of one US backcountry or wilderness permit, or found: false.",
+ "properties": {
+ "agencyDates": {
+ "description": "Upcoming dates from an agency source (lottery opens, closes, results, claims).",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "agencyQuote": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "date": {
+ "description": "YYYY-MM-DD.",
+ "type": "string"
+ },
+ "sourceUrl": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "date",
+ "sourceUrl",
+ "agencyQuote"
+ ],
+ "type": "object"
+ },
+ "maxItems": 8,
+ "type": "array"
+ },
+ "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"
+ },
+ "checkedAt": {
+ "description": "When this answer was composed, ISO 8601.",
+ "type": "string"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "found": {
+ "const": false,
+ "description": "Present, and false, only when nothing matched."
+ },
+ "groupSizeLimit": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "id": {
+ "type": "string"
+ },
+ "issuance": {
+ "description": "How the permit is issued, in plain words.",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "officialUrl": {
+ "description": "The agency's own permit page.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "pageUrl": {
+ "type": "string"
+ },
+ "park": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "releaseRules": {
+ "description": "The agency schedule for when dates go on sale.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "agencyQuote": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "kind": {
+ "type": "string"
+ },
+ "sourceUrl": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "kind",
+ "sourceUrl",
+ "agencyQuote"
+ ],
+ "type": "object"
+ },
+ "maxItems": 4,
+ "type": "array"
+ },
+ "scanRoute": {
+ "description": "How PermitSnag reaches this permit for cancellation openings: direct, through a zone or starting area, through its entry points, or none.",
+ "enum": [
+ "direct",
+ "via_zone",
+ "via_children",
+ "none",
+ 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"
+ },
+ "slug": {
+ "type": "string"
+ },
+ "usState": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}