addedInput schema / properties / fields
Added value: +{
+ "items": {
+ "enum": [
+ "hours",
+ "admission",
+ "booking",
+ "lastAdmission",
+ "foreignVisitors",
+ "transport"
+ ],
+ "type": "string"
+ },
+ "maxItems": 6,
+ "minItems": 1,
+ "type": "array",
+ "uniqueItems": true
+}
addedInput schema / properties / id / maxLength
Added value: +100
addedInput schema / properties / includeTravelerTips
Added value: +{
+ "default": true,
+ "type": "boolean"
+}
addedInput schema / properties / sections
Added value: +{
+ "items": {
+ "enum": [
+ "intro",
+ "practical",
+ "notices",
+ "events",
+ "tips",
+ "gaps",
+ "photos"
+ ],
+ "type": "string"
+ },
+ "maxItems": 7,
+ "minItems": 1,
+ "type": "array",
+ "uniqueItems": true
+}
addedInput schema / properties / tipLimit
Added value: +{
+ "default": 3,
+ "maximum": 50,
+ "minimum": 0,
+ "type": "integer"
+}
addedInput schema / properties / tipOffset
Added value: +{
+ "default": 0,
+ "maximum": 1000,
+ "minimum": 0,
+ "type": "integer"
+}
addedInput schema / properties / visitDate
Added value: +{
+ "description": "Date in Asia/Shanghai, YYYY-MM-DD. Stored rules only; not live availability.",
+ "maxLength": 10,
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+}
addedOutput schema / properties / dataVersion
Added value: +{
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / admission / properties / basisNotes
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / admission / properties / channels
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / admission / properties / checkedAt
Added value: +{
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / admission / properties / conflict
Added value: +{
+ "type": [
+ "object",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / admission / properties / exceptions
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / admission / properties / notes
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / admission / properties / passport
Added value: +{
+ "type": [
+ "object",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / admission / properties / prices
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / admission / properties / rules
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / admission / properties / seasons
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / admission / properties / sourceIds
Added value: +{
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / booking / properties / basisNotes
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / booking / properties / channels
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / booking / properties / checkedAt
Added value: +{
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / booking / properties / conflict
Added value: +{
+ "type": [
+ "object",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / booking / properties / exceptions
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / booking / properties / notes
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / booking / properties / passport
Added value: +{
+ "type": [
+ "object",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / booking / properties / prices
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / booking / properties / rules
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / booking / properties / seasons
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / booking / properties / sourceIds
Added value: +{
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / foreignVisitors / properties / basisNotes
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / foreignVisitors / properties / channels
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / foreignVisitors / properties / checkedAt
Added value: +{
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / foreignVisitors / properties / conflict
Added value: +{
+ "type": [
+ "object",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / foreignVisitors / properties / exceptions
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / foreignVisitors / properties / notes
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / foreignVisitors / properties / passport
Added value: +{
+ "type": [
+ "object",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / foreignVisitors / properties / prices
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / foreignVisitors / properties / rules
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / foreignVisitors / properties / seasons
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / foreignVisitors / properties / sourceIds
Added value: +{
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / hours / properties / basisNotes
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / hours / properties / channels
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / hours / properties / checkedAt
Added value: +{
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / hours / properties / conflict
Added value: +{
+ "type": [
+ "object",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / hours / properties / exceptions
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / hours / properties / notes
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / hours / properties / passport
Added value: +{
+ "type": [
+ "object",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / hours / properties / prices
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / hours / properties / rules
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / hours / properties / seasons
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / hours / properties / sourceIds
Added value: +{
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / lastAdmission / properties / basisNotes
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / lastAdmission / properties / channels
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / lastAdmission / properties / checkedAt
Added value: +{
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / lastAdmission / properties / conflict
Added value: +{
+ "type": [
+ "object",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / lastAdmission / properties / exceptions
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / lastAdmission / properties / notes
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / lastAdmission / properties / passport
Added value: +{
+ "type": [
+ "object",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / lastAdmission / properties / prices
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / lastAdmission / properties / rules
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / lastAdmission / properties / seasons
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / lastAdmission / properties / sourceIds
Added value: +{
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / transport / properties / basisNotes
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / transport / properties / channels
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / transport / properties / checkedAt
Added value: +{
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / transport / properties / conflict
Added value: +{
+ "type": [
+ "object",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / transport / properties / exceptions
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / transport / properties / notes
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / transport / properties / passport
Added value: +{
+ "type": [
+ "object",
+ "null"
+ ]
+}
addedOutput schema / properties / fields / properties / transport / properties / prices
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / transport / properties / rules
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / transport / properties / seasons
Added value: +{
+ "type": "array"
+}
addedOutput schema / properties / fields / properties / transport / properties / sourceIds
Added value: +{
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+}
addedOutput schema / properties / pageFeatures
Added value: +{
+ "items": {
+ "properties": {
+ "additionalTravelerTips": {
+ "type": "integer"
+ },
+ "availableTravelerTips": {
+ "type": "integer"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "enum": [
+ "taxi_display",
+ "traveler_tips",
+ "entrance_photos"
+ ]
+ },
+ "onPageOnly": {
+ "type": "string"
+ },
+ "relevantFor": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "returnedTravelerTips": {
+ "type": "integer"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "url",
+ "description",
+ "relevantFor",
+ "onPageOnly"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedOutput schema / properties / renderedFor
Added value: +{
+ "type": "string"
+}
addedOutput schema / properties / sources
Added value: +{
+ "additionalProperties": {
+ "properties": {
+ "accessedAt": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "checkedAt": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "kind": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "label": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "publishedAt": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "url": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "verificationMethod": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "description": "Source id index. Dates are stored evidence dates, not rendering dates; null means unavailable.",
+ "type": "object"
+}
addedOutput schema / properties / timezone
Added value: +{
+ "const": "Asia/Shanghai"
+}
addedOutput schema / properties / tips
Added value: +{
+ "properties": {
+ "eligibleTotal": {
+ "type": "integer"
+ },
+ "hasMore": {
+ "type": "boolean"
+ },
+ "items": {
+ "items": {
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "nextOffset": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "offset": {
+ "type": "integer"
+ },
+ "order": {
+ "type": "string"
+ },
+ "returned": {
+ "type": "integer"
+ },
+ "topicCounts": {
+ "description": "Counts across eligible tips before pagination; sum equals eligibleTotal.",
+ "items": {
+ "properties": {
+ "count": {
+ "minimum": 1,
+ "type": "integer"
+ },
+ "topic": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "topic",
+ "count"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "total": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "total",
+ "eligibleTotal",
+ "topicCounts",
+ "returned",
+ "offset",
+ "hasMore",
+ "nextOffset",
+ "items"
+ ],
+ "type": "object"
+}
addedOutput schema / properties / visitCheck
Added value: +{
+ "properties": {
+ "exceptions": {
+ "type": "array"
+ },
+ "fields": {
+ "type": "object"
+ },
+ "notices": {
+ "type": "array"
+ },
+ "regular": {
+ "type": "object"
+ },
+ "status": {
+ "enum": [
+ "uncertain",
+ "dated_exception"
+ ]
+ },
+ "timezone": {
+ "const": "Asia/Shanghai"
+ },
+ "uncertainty": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "visitDate": {
+ "type": "string"
+ },
+ "weekday": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "visitDate",
+ "timezone",
+ "status",
+ "regular",
+ "exceptions",
+ "notices",
+ "fields",
+ "uncertainty"
+ ],
+ "type": "object"
+}