{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://www.alohasunsethomestay.com/api/knowledge/schema.json","title":"Aloha Sunset Public Knowledge API","description":"Contract for the public, read-only knowledge dataset and collection envelopes.","schemaVersion":"1.16.0","oneOf":[{"$ref":"#/$defs/knowledgeBase"},{"$ref":"#/$defs/collectionEnvelope"},{"$ref":"#/$defs/index"}],"$defs":{"provenance":{"type":"object","additionalProperties":false,"required":["status","source","reviewedAt"],"properties":{"status":{"enum":["verified","needs_verification","stale"]},"source":{"type":"string","minLength":1},"reviewedAt":{"type":["string","null"],"format":"date"}}},"sourceReference":{"type":"object","additionalProperties":false,"required":["id","title","url","kind","supports"],"properties":{"id":{"type":"string","minLength":1},"title":{"type":"string","minLength":1},"url":{"type":"string","format":"uri"},"kind":{"enum":["owner_verified","official_public","public_listing","editorial_public"]},"supports":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","minLength":1}}}},"mapPoint":{"type":"object","additionalProperties":false,"required":["id","label","role","latitude","longitude","accuracy","mapUrl","plusCode","roleVerification"],"properties":{"id":{"type":"string","pattern":"^owner-map-point-"},"label":{"type":["string","null"]},"role":{"enum":["accommodation_location","parking_pier"]},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"accuracy":{"enum":["business_map_pin","resolved_map_view_center"]},"mapUrl":{"type":"string","format":"uri"},"plusCode":{"type":["string","null"]},"roleVerification":{"enum":["verified_by_place_title","owner_verified_role"]}}},"business":{"type":"object","additionalProperties":false,"required":["id","type","name","shortName","placeType","scale","shortDescription","longDescription","canonicalUrl","address","propertySetting","accommodationSettings","setting","waterBody","hasBeach","beachAccess","accessMode","accessRoute","geo","plusCode","mapUrl","ownerProvidedMapPoints","waterActivities","verifiedClaims","sourceReferences","verificationStatus","publicContact","telephone","provenance"],"properties":{"id":{"const":"business:aloha-sunset"},"type":{"const":"lodging_business"},"name":{"type":"string","minLength":1},"shortName":{"type":"string","minLength":1},"placeType":{"const":"coastal_homestay"},"scale":{"const":"small_homestay"},"shortDescription":{"type":"string","minLength":1},"longDescription":{"type":"string","minLength":1},"canonicalUrl":{"type":"string","format":"uri"},"address":{"type":"object","additionalProperties":false,"required":["streetAddress","locality","district","province","postalCode","countryCode","verificationStatus"],"properties":{"streetAddress":{"type":"string","minLength":1},"locality":{"const":"บางชัน"},"district":{"const":"ขลุง"},"province":{"const":"จันทบุรี"},"postalCode":{"const":"22110"},"countryCode":{"const":"TH"},"verificationStatus":{"const":"needs_owner_confirmation"}}},"propertySetting":{"const":"sea_adjacent_coastal"},"accommodationSettings":{"type":"array","minItems":2,"uniqueItems":true,"items":{"enum":["seaside","poolside"]}},"setting":{"type":"array","minItems":1,"uniqueItems":true,"items":{"enum":["island_geography","saltwater_canals","mangrove_nature","gulf_of_thailand_coast"]}},"waterBody":{"type":"array","minItems":1,"uniqueItems":true,"items":{"enum":["saltwater_canals","gulf_of_thailand"]}},"hasBeach":{"const":false},"beachAccess":{"const":"none"},"accessMode":{"type":"array","minItems":2,"uniqueItems":true,"items":{"enum":["road_to_pier","boat_transfer"]}},"accessRoute":{"const":"drive_to_parking_pier_then_boat_to_accommodation"},"geo":{"type":"object","additionalProperties":false,"required":["latitude","longitude","accuracy","verificationStatus"],"properties":{"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"accuracy":{"const":"business_map_pin"},"verificationStatus":{"const":"owner_verified_google_listing"}}},"plusCode":{"type":"string","minLength":1},"mapUrl":{"type":"string","format":"uri"},"ownerProvidedMapPoints":{"type":"array","minItems":2,"items":{"$ref":"#/$defs/mapPoint"}},"waterActivities":{"type":"array","minItems":8,"uniqueItems":true,"items":{"enum":["swimming","wakeboard","kneeboard","banana_boat","donut_ride","waterslide","kayak","sup_board"]}},"verifiedClaims":{"type":"array","minItems":1,"items":{"type":"string","minLength":1}},"sourceReferences":{"type":"array","minItems":1,"items":{"$ref":"#/$defs/sourceReference"}},"verificationStatus":{"const":"owner_verified_and_external_verified"},"publicContact":{"type":"object","additionalProperties":false,"required":["channel","label","url"],"properties":{"channel":{"const":"LINE"},"label":{"type":"string"},"url":{"type":"string","format":"uri"}}},"telephone":{"type":"array","minItems":2,"maxItems":2,"uniqueItems":true,"items":{"type":"string","pattern":"^0[0-9]{2}-[0-9]{3}-[0-9]{4}$"}},"provenance":{"$ref":"#/$defs/provenance"}}},"accommodation":{"type":"object","additionalProperties":false,"required":["id","type","name","canonicalUrl","houseNumbers","group","location","occupancy","rooms","amenityIds","hasPier","microphoneNote","image","provenance"],"properties":{"id":{"type":"string","pattern":"^accommodation:"},"type":{"const":"accommodation"},"name":{"type":"string","minLength":1},"canonicalUrl":{"type":"string","format":"uri"},"houseNumbers":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"integer"}},"group":{"type":"string","minLength":1},"location":{"type":"object","required":["type","label"],"properties":{"type":{"enum":["waterfront","poolside"]},"label":{"type":"string"}}},"occupancy":{"type":"object","required":["minimumAdults","minimumGuests","maximumGuests"],"properties":{"minimumAdults":{"type":"integer","minimum":1},"minimumGuests":{"type":"integer","minimum":1},"maximumGuests":{"type":"integer","minimum":1}}},"rooms":{"type":"object","required":["bedrooms","bathrooms","livingRooms"],"properties":{"bedrooms":{"type":["integer","null"]},"bathrooms":{"type":["integer","null"]},"livingRooms":{"type":["integer","null"]}}},"amenityIds":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"hasPier":{"type":"boolean"},"microphoneNote":{"type":"string","minLength":1},"image":{"type":"object","required":["url","alt","scope","evidenceNote"],"properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string","minLength":1},"scope":{"enum":["representative","group_reference"]},"evidenceNote":{"type":["string","null"]}}},"provenance":{"$ref":"#/$defs/provenance"}}},"diningProgram":{"type":"object","additionalProperties":false,"required":["id","type","title","canonicalUrl","serviceStyle","serviceStyleLabel","checkInTime","checkOut","meals","mixer","menuChangeNote","sourceAssetUrl","provenance"],"properties":{"id":{"type":"string","pattern":"^dining:"},"type":{"const":"dining_program"},"title":{"type":"string","minLength":1},"canonicalUrl":{"type":"string","format":"uri"},"serviceStyle":{"const":"unlimited_seafood_buffet"},"serviceStyleLabel":{"const":"บุฟเฟ่ต์ซีฟู้ดเติมไม่อั้น"},"checkInTime":{"type":"string","pattern":"^[0-2][0-9]:[0-5][0-9]$"},"checkOut":{"type":"object","additionalProperties":false,"required":["dayLabel","noLaterThan"],"properties":{"dayLabel":{"type":"string","minLength":1},"noLaterThan":{"type":"string","pattern":"^[0-2][0-9]:[0-5][0-9]$"}}},"meals":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"object","additionalProperties":false,"required":["id","label","day","startTime","endTime","includedInAllPackages","menuItems","note"],"properties":{"id":{"enum":["lunch","break","dinner","breakfast"]},"label":{"type":"string","minLength":1},"day":{"enum":["check-in","check-out"]},"startTime":{"type":"string","pattern":"^[0-2][0-9]:[0-5][0-9]$"},"endTime":{"type":"string","pattern":"^[0-2][0-9]:[0-5][0-9]$"},"includedInAllPackages":{"type":"boolean"},"menuItems":{"type":"array","minItems":1,"items":{"type":"string","minLength":1}},"note":{"type":["string","null"]}}}},"mixer":{"type":"object","additionalProperties":false,"required":["label","included","house","breakArea","diningArea"],"properties":{"label":{"type":"string","minLength":1},"included":{"const":true},"house":{"type":"object","additionalProperties":false,"required":["label","items"],"properties":{"label":{"type":"string","minLength":1},"items":{"type":"array","minItems":1,"items":{"type":"string","minLength":1}}}},"breakArea":{"type":"object","additionalProperties":false,"required":["label","items"],"properties":{"label":{"type":"string","minLength":1},"items":{"type":"array","minItems":2,"maxItems":2,"uniqueItems":true,"items":{"type":"string","minLength":1}}}},"diningArea":{"type":"object","additionalProperties":false,"required":["label","servedWithMeals","items","breakfastExtras"],"properties":{"label":{"type":"string","minLength":1},"servedWithMeals":{"type":"array","minItems":3,"maxItems":3,"uniqueItems":true,"items":{"type":"string","minLength":1}},"items":{"type":"array","minItems":1,"items":{"type":"string","minLength":1}},"breakfastExtras":{"type":"array","minItems":1,"items":{"type":"string","minLength":1}}}}}},"menuChangeNote":{"type":"string","minLength":1},"sourceAssetUrl":{"type":"string","format":"uri"},"provenance":{"$ref":"#/$defs/provenance"}}},"activity":{"type":"object","additionalProperties":false,"required":["id","type","name","category","description","suitableFor","availabilityNote","safetyNote","sourceAssetUrl","canonicalUrl","provenance"],"properties":{"id":{"type":"string","pattern":"^activity:"},"type":{"const":"activity"},"name":{"type":"string","minLength":1},"category":{"enum":["food","water","adventure","nature","community","stay"]},"description":{"type":"string","minLength":1},"suitableFor":{"type":"array","minItems":1,"items":{"type":"string","minLength":1}},"availabilityNote":{"type":"string","minLength":1},"safetyNote":{"type":["string","null"]},"sourceAssetUrl":{"type":["string","null"],"format":"uri"},"canonicalUrl":{"type":"string","format":"uri"},"provenance":{"$ref":"#/$defs/provenance"}}},"scheduleEvent":{"type":"object","additionalProperties":false,"required":["id","day","timeLabel","startTime","endTime","category","title","detail","relatedMealId","requirements","activityNames"],"properties":{"id":{"type":"string","minLength":1},"day":{"enum":["check-in","check-out"]},"timeLabel":{"type":"string","minLength":1},"startTime":{"type":["string","null"],"pattern":"^[0-2][0-9]:[0-5][0-9]$"},"endTime":{"type":["string","null"],"pattern":"^[0-2][0-9]:[0-5][0-9]$"},"category":{"enum":["check_in","meal","registration","free_time","nature","sunset","kitchen","quiet_hours","community","check_out"]},"title":{"type":"string","minLength":1},"detail":{"type":"string","minLength":1},"relatedMealId":{"enum":["lunch","break","dinner","breakfast",null]},"requirements":{"type":"array","items":{"type":"string","minLength":1}},"activityNames":{"type":"array","items":{"type":"string","minLength":1}}}},"lateCheckoutPolicy":{"type":"object","additionalProperties":false,"required":["status","publicGuidance","mayCalculateAutomatically","confirmedRule","versions"],"properties":{"status":{"const":"owner_confirmed"},"publicGuidance":{"const":"ค่าบริการเช็กเอาต์เกินเวลา 500 บาท/ชั่วโมง"},"mayCalculateAutomatically":{"const":false},"confirmedRule":{"type":"object","additionalProperties":false,"required":["amount","currency","billingUnit","appliesAfter","confirmedAt"],"properties":{"amount":{"const":500},"currency":{"const":"THB"},"billingUnit":{"const":"hour"},"appliesAfter":{"const":"10:00"},"confirmedAt":{"const":"2026-09-11"}}},"versions":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"object","additionalProperties":false,"required":["id","sourceLabel","sourceAsset","rules"],"properties":{"id":{"enum":["activity-schedule-poster","stay-terms-page-1"]},"sourceLabel":{"type":"string","minLength":1},"sourceAsset":{"type":"string","minLength":1},"rules":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["startTime","endTime","chargeType","amount","currency","percentage","billingUnit","rawText"],"properties":{"startTime":{"type":"string","pattern":"^[0-2][0-9]:[0-5][0-9]$"},"endTime":{"type":["string","null"],"pattern":"^[0-2][0-9]:[0-5][0-9]$"},"chargeType":{"enum":["fixed_per_hour","package_percentage","full_package_price"]},"amount":{"type":["number","null"]},"currency":{"enum":["THB",null]},"percentage":{"type":["number","null"]},"billingUnit":{"enum":["hour",null]},"rawText":{"type":"string","minLength":1}}}}}}}}},"scheduleProgram":{"type":"object","additionalProperties":false,"required":["id","type","title","canonicalUrl","days","keyDeposit","lateCheckout","waterActivityRegistrationRule","quietHoursRule","sourceAssetUrl","provenance"],"properties":{"id":{"type":"string","pattern":"^schedule:"},"type":{"const":"schedule_program"},"title":{"const":"ตารางกิจกรรม"},"canonicalUrl":{"type":"string","format":"uri"},"days":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"object","additionalProperties":false,"required":["id","label","events"],"properties":{"id":{"enum":["check-in-day","check-out-day"]},"label":{"type":"string","minLength":1},"events":{"type":"array","minItems":1,"items":{"$ref":"#/$defs/scheduleEvent"}}}}},"keyDeposit":{"type":"object","additionalProperties":false,"required":["amount","currency","unit","label"],"properties":{"amount":{"const":500},"currency":{"const":"THB"},"unit":{"const":"per_house"},"label":{"type":"string","minLength":1}}},"lateCheckout":{"$ref":"#/$defs/lateCheckoutPolicy"},"waterActivityRegistrationRule":{"type":"string","minLength":1},"quietHoursRule":{"type":"string","minLength":1},"sourceAssetUrl":{"type":"string","format":"uri"},"provenance":{"$ref":"#/$defs/provenance"}}},"stayCheckInPolicy":{"type":"object","additionalProperties":false,"required":["id","type","title","canonicalUrl","checkIn","minimumAdultsOnCheckInDay","checkOut","sourceAssetUrl","provenance"],"properties":{"id":{"type":"string","pattern":"^stay-policy:"},"type":{"const":"stay_checkin_policy"},"title":{"type":"string","minLength":1},"canonicalUrl":{"type":"string","format":"uri"},"checkIn":{"type":"object","additionalProperties":false,"required":["time","earlyCheckIn"],"properties":{"time":{"const":"12:00"},"earlyCheckIn":{"type":"object","additionalProperties":false,"required":["fee","currency","billingUnit","subjectToRoomReadiness","note"],"properties":{"fee":{"const":1000},"currency":{"const":"THB"},"billingUnit":{"const":"hour_per_house"},"subjectToRoomReadiness":{"const":true},"note":{"type":"string","minLength":1}}}}},"minimumAdultsOnCheckInDay":{"type":"object","additionalProperties":false,"required":["minimumAdults","chargeAsMinimumAdults","basis","note","mayCalculateBookingPrice"],"properties":{"minimumAdults":{"const":6},"chargeAsMinimumAdults":{"const":6},"basis":{"const":"accommodation_promotion"},"note":{"type":"string","minLength":1},"mayCalculateBookingPrice":{"const":false}}},"checkOut":{"type":"object","additionalProperties":false,"required":["noLaterThan","lateCheckout"],"properties":{"noLaterThan":{"const":"10:00"},"lateCheckout":{"$ref":"#/$defs/lateCheckoutPolicy"}}},"sourceAssetUrl":{"type":"string","format":"uri"},"provenance":{"$ref":"#/$defs/provenance"}}},"travelAccessProgram":{"type":"object","additionalProperties":false,"required":["id","type","title","canonicalUrl","aboutCanonicalUrl","route","routeDescription","parking","boat","propertyDescription","highlights","signedDistanceLabel","signedDistanceStatus","signedDistanceNote","accommodationCoordinates","parkingPierCoordinates","sourceAssetUrl","supplementalSourceAssetUrl","provenance"],"properties":{"id":{"type":"string","pattern":"^travel-access:"},"type":{"const":"travel_access_program"},"title":{"type":"string","minLength":1},"canonicalUrl":{"type":"string","format":"uri"},"aboutCanonicalUrl":{"type":"string","format":"uri"},"route":{"const":"drive_to_parking_pier_then_boat_through_mangroves_to_accommodation"},"routeDescription":{"type":"string","minLength":1},"parking":{"type":"object","additionalProperties":false,"required":["fee","currency","label","safetyAttendant"],"properties":{"fee":{"const":0},"currency":{"const":"THB"},"label":{"const":"ค่าจอดรถฟรี"},"safetyAttendant":{"type":"object","additionalProperties":false,"required":["present","scope","note"],"properties":{"present":{"const":true},"scope":{"const":"parking_and_access_context"},"note":{"type":"string","minLength":1}}}}},"boat":{"type":"object","additionalProperties":false,"required":["fee","currency","label","routeSetting","estimatedDurationMinutes","durationStatus","durationNote"],"properties":{"fee":{"const":0},"currency":{"const":"THB"},"label":{"const":"ค่าเรือเข้าที่พักฟรี"},"routeSetting":{"const":"mangrove_route"},"estimatedDurationMinutes":{"type":"object","additionalProperties":false,"required":["minimum","maximum"],"properties":{"minimum":{"const":15},"maximum":{"const":20}}},"durationStatus":{"const":"owner_confirmed_estimate"},"durationNote":{"type":"string","minLength":1}}},"propertyDescription":{"type":"string","minLength":1},"highlights":{"type":"array","minItems":9,"maxItems":9,"uniqueItems":true,"items":{"type":"object","additionalProperties":false,"required":["id","claim","scopeNote","referenceIds"],"properties":{"id":{"enum":["unlimited-seafood","free-mixer","free-unlimited-activities","free-private-party-sound","group-separated-sleeping","group-separated-dining","spacious","clear-zones","waterfront-mangrove"]},"claim":{"type":"string","minLength":1},"scopeNote":{"type":"string","minLength":1},"referenceIds":{"type":"array","minItems":1,"items":{"type":"string","minLength":1}}}}},"signedDistanceLabel":{"const":"2 km."},"signedDistanceStatus":{"const":"owner_confirmed_estimate"},"signedDistanceNote":{"type":"string","minLength":1},"accommodationCoordinates":{"type":"object","additionalProperties":false,"required":["latitude","longitude"],"properties":{"latitude":{"const":12.3502478},"longitude":{"const":102.2093618}}},"parkingPierCoordinates":{"type":"object","additionalProperties":false,"required":["latitude","longitude"],"properties":{"latitude":{"const":12.3554682},"longitude":{"const":102.2192712}}},"sourceAssetUrl":{"type":"string","format":"uri"},"supplementalSourceAssetUrl":{"type":"string","format":"uri"},"provenance":{"$ref":"#/$defs/provenance"}}},"guestPreparation":{"type":"object","additionalProperties":false,"required":["id","type","title","canonicalUrl","items","hasWaterHeater","waterHeaterNote","sourceAssetUrl","provenance"],"properties":{"id":{"type":"string","pattern":"^guest-preparation:"},"type":{"const":"guest_preparation"},"title":{"const":"สิ่งที่ต้องเตรียมมาเอง"},"canonicalUrl":{"type":"string","format":"uri"},"items":{"type":"array","minItems":4,"maxItems":4,"uniqueItems":true,"items":{"enum":["ผ้าเช็ดตัว","ยาสีฟัน","แปรงสีฟัน","ถุงใส่เสื้อผ้าเปียก"]}},"hasWaterHeater":{"const":false},"waterHeaterNote":{"const":"ที่พักไม่มีบริการเครื่องทำน้ำอุ่น"},"sourceAssetUrl":{"type":"string","format":"uri"},"provenance":{"$ref":"#/$defs/provenance"}}},"contactProfile":{"type":"object","additionalProperties":false,"required":["id","type","canonicalUrl","purpose","serviceHours","line","phones","facebook","sourceAssetUrl","provenance"],"properties":{"id":{"const":"contact:aloha-sunset-public"},"type":{"const":"contact_profile"},"canonicalUrl":{"type":"string","format":"uri"},"purpose":{"const":"inquiries_and_availability_checks"},"serviceHours":{"type":"object","additionalProperties":false,"required":["opens","closes","timeZone","daily"],"properties":{"opens":{"const":"08:00"},"closes":{"const":"20:00"},"timeZone":{"const":"Asia/Bangkok"},"daily":{"const":true}}},"line":{"type":"object","additionalProperties":false,"required":["label","url"],"properties":{"label":{"const":"@alohasunset"},"url":{"type":"string","format":"uri"}}},"phones":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"object","additionalProperties":false,"required":["display","e164","telUrl"],"properties":{"display":{"type":"string","pattern":"^0[0-9]{2}-[0-9]{3}-[0-9]{4}$"},"e164":{"type":"string","pattern":"^\\+66[0-9]{9}$"},"telUrl":{"type":"string","pattern":"^tel:\\+66[0-9]{9}$"}}}},"facebook":{"type":"object","additionalProperties":false,"required":["thaiName","englishName","url"],"properties":{"thaiName":{"const":"อโลฮ่าซันเซ็ทโฮมสเตย์ จันทบุรี"},"englishName":{"const":"Aloha Sunset Homestay Chanthaburi"},"url":{"type":"string","format":"uri"}}},"sourceAssetUrl":{"type":"string","format":"uri"},"provenance":{"$ref":"#/$defs/provenance"}}},"stayTermRule":{"type":"object","additionalProperties":false,"required":["id","sourcePage","sourceNumber","category","status","title","summary","rawText","hasMonetaryTerm","mayCalculateAutomatically"],"properties":{"id":{"type":"string","minLength":1},"sourcePage":{"enum":[1,2]},"sourceNumber":{"type":"integer","minimum":1},"category":{"enum":["stay_safety","time_fees","guests_visitors","damage_property","deposit_payment","cancellation","rescheduling","guest_count_changes"]},"status":{"enum":["documented_operator_term","needs_owner_confirmation","conflicting_sources"]},"title":{"type":"string","minLength":1},"summary":{"type":"string","minLength":1},"rawText":{"type":"string","minLength":1},"hasMonetaryTerm":{"type":"boolean"},"mayCalculateAutomatically":{"const":false}}},"stayTermsDocument":{"type":"object","additionalProperties":false,"required":["id","type","title","canonicalUrl","nature","publicGuidance","mayAcceptBooking","mayAcceptPayment","mayCalculateFees","sourceAssetUrls","sections","conflicts","reservationOfRightsNote","provenance"],"properties":{"id":{"type":"string","pattern":"^stay-terms:"},"type":{"const":"stay_terms_document"},"title":{"const":"ข้อกำหนดการเข้าพัก"},"canonicalUrl":{"type":"string","format":"uri"},"nature":{"const":"operator_document_not_legal_certification"},"publicGuidance":{"type":"string","minLength":1},"mayAcceptBooking":{"const":false},"mayAcceptPayment":{"const":false},"mayCalculateFees":{"const":false},"sourceAssetUrls":{"type":"array","minItems":2,"maxItems":2,"uniqueItems":true,"items":{"type":"string","format":"uri"}},"sections":{"type":"array","minItems":8,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["id","title","rules"],"properties":{"id":{"enum":["stay_safety","time_fees","guests_visitors","damage_property","deposit_payment","cancellation","rescheduling","guest_count_changes"]},"title":{"type":"string","minLength":1},"rules":{"type":"array","minItems":1,"items":{"$ref":"#/$defs/stayTermRule"}}}}},"conflicts":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"object","additionalProperties":false,"required":["id","title","status","publicGuidance","sources","ownerDecisionId"],"properties":{"id":{"enum":["late-checkout-fee","pet-policy","deposit-versus-rescheduling"]},"title":{"type":"string","minLength":1},"status":{"const":"needs_owner_confirmation"},"publicGuidance":{"type":"string","minLength":1},"sources":{"type":"array","minItems":2,"items":{"type":"object","additionalProperties":false,"required":["sourceLabel","sourceAsset","details"],"properties":{"sourceLabel":{"type":"string","minLength":1},"sourceAsset":{"type":"string","format":"uri"},"details":{"type":"string","minLength":1}}}},"ownerDecisionId":{"type":"string","pattern":"^decision-"}}}},"reservationOfRightsNote":{"type":"string","minLength":1},"provenance":{"$ref":"#/$defs/provenance"}}},"pricingSource":{"type":"object","additionalProperties":false,"required":["id","type","provider","tableName","sourceOfTruth","mode","connected","status","canReadCurrentPrices","mayWrite","publishedPriceCount","sourceFieldMapping","fieldMappingStatus","freshness","runtimeConfiguration","presentationReference","publicGuidance","canonicalUrl","provenance"],"properties":{"id":{"const":"pricing-source:appsheet-date-calendar"},"type":{"const":"pricing_source"},"provider":{"const":"AppSheet"},"tableName":{"const":"ราคาตามวันที่"},"sourceOfTruth":{"const":true},"mode":{"const":"read_only"},"connected":{"const":true},"status":{"const":"ready"},"canReadCurrentPrices":{"const":true},"mayWrite":{"const":false},"publishedPriceCount":{"type":"integer","minimum":1},"sourceFieldMapping":{"type":"object","additionalProperties":false,"required":["canonicalPriceTable","calendarTable","date","dayType","price","houseStatusPattern"],"properties":{"canonicalPriceTable":{"const":"ราคาตามวันที่"},"calendarTable":{"const":"สรุปบ้านว่างรายวัน"},"date":{"const":"วันที่"},"dayType":{"const":"ประเภทวัน"},"price":{"const":"อัตราราคาที่ใช้"},"houseStatusPattern":{"const":"สถานะบ้าน {houseNumber}"}}},"fieldMappingStatus":{"const":"confirmed"},"freshness":{"type":"object","additionalProperties":false,"required":["status","checkedAt","sourceUpdatedAt","maximumAgeMinutes"],"properties":{"status":{"const":"fresh"},"checkedAt":{"type":"string","format":"date-time"},"sourceUpdatedAt":{"type":"null"},"maximumAgeMinutes":{"const":1}}},"runtimeConfiguration":{"type":"object","additionalProperties":false,"required":["configured","storage","exposedToFrontend"],"properties":{"configured":{"const":true},"storage":{"const":"server_runtime_only"},"exposedToFrontend":{"const":false}}},"presentationReference":{"type":"object","additionalProperties":false,"required":["role","contributesCanonicalPrices","publishedToSite"],"properties":{"role":{"const":"presentation_example_only"},"contributesCanonicalPrices":{"const":false},"publishedToSite":{"const":false}}},"publicGuidance":{"type":"string","minLength":1},"canonicalUrl":{"const":"https://www.alohasunsethomestay.com/availability/"},"provenance":{"$ref":"#/$defs/provenance"}}},"ownerDecision":{"type":"object","additionalProperties":false,"required":["id","type","category","priority","question","whyNeeded","affectsRoutes","canonicalUrl","provenance"],"properties":{"id":{"type":"string","pattern":"^decision:"},"type":{"const":"owner_decision"},"category":{"enum":["identity","packages","activities","stay","travel","availability","videos","food","guides"]},"priority":{"enum":["high","medium","low"]},"question":{"type":"string","minLength":1},"whyNeeded":{"type":"string","minLength":1},"affectsRoutes":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","pattern":"^/"}},"canonicalUrl":{"type":"string","format":"uri"},"provenance":{"$ref":"#/$defs/provenance"}}},"amenity":{"type":"object","additionalProperties":false,"required":["id","name"],"properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1}}},"houseUnit":{"type":"object","additionalProperties":false,"required":["id","type","number","canonicalUrl","groupAccommodationId","location","occupancy","rooms","amenityIds","hasPier","microphoneNote","images","provenance"],"properties":{"id":{"type":"string","pattern":"^house-unit:"},"type":{"const":"house_unit"},"number":{"enum":[1,2,3,4,5,6,18,19,20,21,22]},"canonicalUrl":{"type":"string","format":"uri"},"groupAccommodationId":{"type":"string","pattern":"^accommodation:"},"location":{"type":"object","additionalProperties":false,"required":["type","label"],"properties":{"type":{"enum":["waterfront","poolside"]},"label":{"type":"string","minLength":1}}},"occupancy":{"type":"object","additionalProperties":false,"required":["minimumAdults","minimumGuests","maximumGuests"],"properties":{"minimumAdults":{"type":"integer","minimum":1},"minimumGuests":{"type":"integer","minimum":1},"maximumGuests":{"type":"integer","minimum":1}}},"rooms":{"type":"object","additionalProperties":false,"required":["bedrooms","bathrooms","livingRooms"],"properties":{"bedrooms":{"type":"integer","minimum":1},"bathrooms":{"type":"integer","minimum":1},"livingRooms":{"type":"integer","minimum":1}}},"amenityIds":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","minLength":1}},"hasPier":{"type":"boolean"},"microphoneNote":{"type":"string","minLength":1},"images":{"type":"object","additionalProperties":false,"required":["posterUrl","bedroomUrl","livingAreaUrl"],"properties":{"posterUrl":{"type":"string","format":"uri"},"bedroomUrl":{"type":"string","format":"uri"},"livingAreaUrl":{"type":"string","format":"uri"}}},"provenance":{"$ref":"#/$defs/provenance"}}},"accommodationMap":{"type":"object","additionalProperties":false,"required":["id","type","title","canonicalUrl","imageUrl","houseNumbers","landmarks","orientation","provenance"],"properties":{"id":{"type":"string","pattern":"^accommodation-map:"},"type":{"const":"accommodation_map"},"title":{"type":"string","minLength":1},"canonicalUrl":{"type":"string","format":"uri"},"imageUrl":{"type":"string","format":"uri"},"houseNumbers":{"type":"array","minItems":11,"maxItems":11,"uniqueItems":true,"items":{"enum":[1,2,3,4,5,6,18,19,20,21,22]}},"landmarks":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"object","additionalProperties":false,"required":["id","label"],"properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1}}}},"orientation":{"type":"object","additionalProperties":false,"required":["northShown"],"properties":{"northShown":{"const":true}}},"provenance":{"$ref":"#/$defs/provenance"}}},"sitePage":{"type":"object","additionalProperties":false,"required":["id","type","route","canonicalUrl","title","summary","topics","visibility","provenance"],"properties":{"id":{"type":"string","pattern":"^site:page-"},"type":{"const":"site_page"},"route":{"type":"string","pattern":"^/"},"canonicalUrl":{"type":"string","format":"uri"},"title":{"type":"string","minLength":1},"summary":{"type":"string","minLength":1},"topics":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","minLength":1}},"visibility":{"enum":["primary_navigation","supporting","compatibility","knowledge"]},"provenance":{"$ref":"#/$defs/provenance"}}},"petPolicy":{"type":"object","additionalProperties":false,"required":["id","type","title","canonicalUrl","summary","maximumWeightKg","firstPetFee","additionalPetFee","maximumPetFriendlyHousesPerDay","photoApprovalRequired","highlights","rules","sourceAssetUrl","provenance"],"properties":{"id":{"type":"string","pattern":"^pet-policy:"},"type":{"const":"pet_policy"},"title":{"type":"string","minLength":1},"canonicalUrl":{"type":"string","format":"uri"},"summary":{"type":"string","minLength":1},"maximumWeightKg":{"type":"number","exclusiveMinimum":0},"firstPetFee":{"type":"object","additionalProperties":false,"required":["amount","currency","scope"],"properties":{"amount":{"type":"number","minimum":0},"currency":{"const":"THB"},"scope":{"const":"per_booking_group"}}},"additionalPetFee":{"type":"object","additionalProperties":false,"required":["amount","currency","unit"],"properties":{"amount":{"type":"number","minimum":0},"currency":{"const":"THB"},"unit":{"const":"per_pet"}}},"maximumPetFriendlyHousesPerDay":{"type":"integer","minimum":1},"photoApprovalRequired":{"const":true},"highlights":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["label","value","detail"],"properties":{"label":{"type":"string","minLength":1},"value":{"type":"string","minLength":1},"detail":{"type":"string","minLength":1}}}},"rules":{"type":"array","minItems":1,"items":{"type":"string","minLength":1}},"sourceAssetUrl":{"type":"string","format":"uri"},"provenance":{"$ref":"#/$defs/provenance"}}},"bookingProcess":{"type":"object","additionalProperties":false,"required":["id","type","title","canonicalUrl","bookingChannel","steps","completionRule","websiteBoundaries","provenance"],"properties":{"id":{"type":"string","pattern":"^booking-process:"},"type":{"const":"booking_process"},"title":{"type":"string","minLength":1},"canonicalUrl":{"type":"string","format":"uri"},"bookingChannel":{"type":"object","additionalProperties":false,"required":["channel","label","url"],"properties":{"channel":{"const":"LINE Official"},"label":{"type":"string","minLength":1},"url":{"type":"string","format":"uri"}}},"steps":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"object","additionalProperties":false,"required":["number","title","detail"],"properties":{"number":{"type":"integer","minimum":1,"maximum":4},"title":{"type":"string","minLength":1},"detail":{"type":"string","minLength":1}}}},"completionRule":{"type":"string","minLength":1},"websiteBoundaries":{"type":"object","additionalProperties":false,"required":["acceptsBooking","acceptsPayment","confirmsAvailability"],"properties":{"acceptsBooking":{"const":false},"acceptsPayment":{"const":false},"confirmsAvailability":{"const":false}}},"provenance":{"$ref":"#/$defs/provenance"}}},"specialEventProgram":{"type":"object","additionalProperties":false,"required":["id","type","title","canonicalUrl","description","examples","additionalCharge","advanceContactRequired","provenance"],"properties":{"id":{"type":"string","pattern":"^special-event:"},"type":{"const":"special_event_program"},"title":{"type":"string","minLength":1},"canonicalUrl":{"type":"string","format":"uri"},"description":{"type":"string","minLength":1},"examples":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","minLength":1}},"additionalCharge":{"const":true},"advanceContactRequired":{"const":true},"provenance":{"$ref":"#/$defs/provenance"}}},"activityMediaItem":{"type":"object","additionalProperties":false,"required":["kind","url","mimeType","fallbackUrl","fallbackMimeType"],"properties":{"kind":{"const":"video"},"url":{"type":"string","format":"uri"},"mimeType":{"enum":["video/mp4","video/webm"]},"fallbackUrl":{"type":["string","null"],"format":"uri"},"fallbackMimeType":{"enum":["video/mp4",null]}}},"activityMedia":{"type":"object","additionalProperties":false,"required":["id","type","activityId","title","canonicalUrl","media","provenance"],"properties":{"id":{"type":"string","pattern":"^activity-media:"},"type":{"const":"activity_media"},"activityId":{"type":"string","pattern":"^activity:"},"title":{"type":"string","minLength":1},"canonicalUrl":{"type":"string","format":"uri"},"media":{"type":"array","minItems":1,"items":{"$ref":"#/$defs/activityMediaItem"}},"provenance":{"$ref":"#/$defs/provenance"}}},"packageRecord":{"type":"object","additionalProperties":false,"required":["id","type","name","canonicalUrl","duration","price","currency","inclusions","pendingFields","provenance"],"properties":{"id":{"type":"string","pattern":"^package:"},"type":{"const":"package"},"name":{"type":"string","minLength":1},"canonicalUrl":{"type":"string","format":"uri"},"duration":{"type":"string","minLength":1},"price":{"type":"null"},"currency":{"type":"null"},"inclusions":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["id","label","detail","status","sourceLabel"],"properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"detail":{"type":"string","minLength":1},"status":{"enum":["verified","needs_verification","stale"]},"sourceLabel":{"type":"string","minLength":1}}}},"pendingFields":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1}},"provenance":{"$ref":"#/$defs/provenance"}}},"videoRecord":{"type":"object","additionalProperties":false,"required":["id","type","slot","day","title","category","description","transcriptSummary","durationSeconds","contentDate","youtubeId","youtubeUrl","posterUrl","platformLinks","sourcePlatforms","keywords","isEmbeddable","canonicalUrl","provenance"],"properties":{"id":{"type":"string","pattern":"^video:"},"type":{"const":"video"},"slot":{"type":"integer","minimum":1},"day":{"type":["integer","null"],"minimum":1},"title":{"type":"string","minLength":1},"category":{"enum":["atmosphere","stay","seafood","activity","travel"]},"description":{"type":"string","minLength":1},"transcriptSummary":{"type":"string","minLength":1},"durationSeconds":{"type":["number","null"],"minimum":0},"contentDate":{"type":["string","null"],"format":"date"},"youtubeId":{"type":["string","null"]},"youtubeUrl":{"type":["string","null"],"format":"uri"},"posterUrl":{"type":["string","null"],"format":"uri"},"platformLinks":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["platform","url","publishedAt"],"properties":{"platform":{"enum":["facebook","instagram","tiktok","youtube","line"]},"url":{"type":"string","format":"uri"},"publishedAt":{"type":["string","null"],"format":"date-time"}}}},"sourcePlatforms":{"type":"array","uniqueItems":true,"items":{"enum":["facebook","instagram","tiktok","youtube","line"]}},"keywords":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1}},"isEmbeddable":{"type":"boolean"},"canonicalUrl":{"type":"string","format":"uri"},"provenance":{"$ref":"#/$defs/provenance"}}},"faqRecord":{"type":"object","additionalProperties":false,"required":["id","type","question","answer","category","canonicalUrl","provenance"],"properties":{"id":{"type":"string","pattern":"^faq:"},"type":{"const":"faq"},"question":{"type":"string","minLength":1},"answer":{"type":"string","minLength":1},"category":{"enum":["booking","stay","travel","activities","food"]},"canonicalUrl":{"type":"string","format":"uri"},"provenance":{"$ref":"#/$defs/provenance"}}},"policyRecord":{"type":"object","additionalProperties":false,"required":["id","type","title","summary","canonicalUrl","provenance"],"properties":{"id":{"type":"string","pattern":"^policy:"},"type":{"const":"policy"},"title":{"type":"string","minLength":1},"summary":{"type":"string","minLength":1},"canonicalUrl":{"type":"string","format":"uri"},"provenance":{"$ref":"#/$defs/provenance"}}},"travelFact":{"type":"object","additionalProperties":false,"required":["id","type","title","summary","canonicalUrl","provenance"],"properties":{"id":{"type":"string","pattern":"^travel:"},"type":{"const":"travel_fact"},"title":{"type":"string","minLength":1},"summary":{"type":"string","minLength":1},"canonicalUrl":{"type":"string","format":"uri"},"provenance":{"$ref":"#/$defs/provenance"}}},"dataPolicy":{"type":"object","additionalProperties":false,"required":["unknownValues","availability","prices","containsPersonalData"],"properties":{"unknownValues":{"const":"null-or-omitted"},"availability":{"const":"appsheet-read-only-after-verified-connection"},"prices":{"const":"appsheet-date-calendar-read-only-after-verified-connection"},"containsPersonalData":{"const":false}}},"availabilityService":{"type":"object","additionalProperties":false,"required":["provider","sourceTable","connected","status","mode","readOnly","mayWrite","canDeclareHouseAvailable","fieldMappingStatus","freshness","canConfirmAvailability","publicSource","nextStep"],"properties":{"provider":{"const":"AppSheet"},"sourceTable":{"const":"สรุปบ้านว่างรายวัน"},"connected":{"const":true},"status":{"const":"ready"},"mode":{"const":"fail_closed"},"readOnly":{"const":true},"mayWrite":{"const":false},"canDeclareHouseAvailable":{"const":true},"fieldMappingStatus":{"const":"confirmed"},"freshness":{"type":"object","additionalProperties":false,"required":["status","checkedAt","sourceUpdatedAt","maximumAgeMinutes"],"properties":{"status":{"const":"fresh"},"checkedAt":{"type":"string","format":"date-time"},"sourceUpdatedAt":{"type":"null"},"maximumAgeMinutes":{"const":1}}},"canConfirmAvailability":{"const":false},"publicSource":{"type":"string","format":"uri"},"nextStep":{"type":"string","minLength":1}}},"knowledgeBase":{"type":"object","additionalProperties":false,"required":["schemaVersion","schemaUrl","contentVersion","language","generatedAt","canonicalUrl","license","dataPolicy","availabilityService","pricingSource","business","amenities","accommodations","houseUnits","accommodationMaps","sitePages","dining","schedule","stayPolicies","stayTerms","travelAccess","guestPreparation","contacts","petPolicies","bookingProcesses","specialEvents","activityMedia","packages","activities","videos","faqs","policies","travel","ownerDecisions"],"properties":{"schemaVersion":{"const":"1.16.0"},"schemaUrl":{"type":"string","format":"uri"},"contentVersion":{"type":"string","minLength":1},"language":{"const":"th-TH"},"generatedAt":{"type":"string","format":"date-time"},"canonicalUrl":{"type":"string","format":"uri"},"license":{"const":"public-read-only"},"dataPolicy":{"$ref":"#/$defs/dataPolicy"},"availabilityService":{"$ref":"#/$defs/availabilityService"},"pricingSource":{"type":"array","minItems":1,"maxItems":1,"items":{"$ref":"#/$defs/pricingSource"}},"business":{"$ref":"#/$defs/business"},"amenities":{"type":"array","minItems":1,"items":{"$ref":"#/$defs/amenity"}},"accommodations":{"type":"array","items":{"$ref":"#/$defs/accommodation"}},"houseUnits":{"type":"array","minItems":11,"maxItems":11,"items":{"$ref":"#/$defs/houseUnit"}},"accommodationMaps":{"type":"array","minItems":1,"maxItems":1,"items":{"$ref":"#/$defs/accommodationMap"}},"sitePages":{"type":"array","minItems":15,"items":{"$ref":"#/$defs/sitePage"}},"dining":{"type":"array","minItems":1,"maxItems":1,"items":{"$ref":"#/$defs/diningProgram"}},"schedule":{"type":"array","minItems":1,"maxItems":1,"items":{"$ref":"#/$defs/scheduleProgram"}},"stayPolicies":{"type":"array","minItems":1,"maxItems":1,"items":{"$ref":"#/$defs/stayCheckInPolicy"}},"stayTerms":{"type":"array","minItems":1,"maxItems":1,"items":{"$ref":"#/$defs/stayTermsDocument"}},"travelAccess":{"type":"array","minItems":1,"maxItems":1,"items":{"$ref":"#/$defs/travelAccessProgram"}},"guestPreparation":{"type":"array","minItems":1,"maxItems":1,"items":{"$ref":"#/$defs/guestPreparation"}},"contacts":{"type":"array","minItems":1,"maxItems":1,"items":{"$ref":"#/$defs/contactProfile"}},"petPolicies":{"type":"array","minItems":1,"maxItems":1,"items":{"$ref":"#/$defs/petPolicy"}},"bookingProcesses":{"type":"array","minItems":1,"maxItems":1,"items":{"$ref":"#/$defs/bookingProcess"}},"specialEvents":{"type":"array","minItems":1,"items":{"$ref":"#/$defs/specialEventProgram"}},"activityMedia":{"type":"array","minItems":1,"items":{"$ref":"#/$defs/activityMedia"}},"packages":{"type":"array","items":{"$ref":"#/$defs/packageRecord"}},"activities":{"type":"array","items":{"$ref":"#/$defs/activity"}},"videos":{"type":"array","items":{"$ref":"#/$defs/videoRecord"}},"faqs":{"type":"array","items":{"$ref":"#/$defs/faqRecord"}},"policies":{"type":"array","items":{"$ref":"#/$defs/policyRecord"}},"travel":{"type":"array","items":{"$ref":"#/$defs/travelFact"}},"ownerDecisions":{"type":"array","items":{"$ref":"#/$defs/ownerDecision"}}}},"collectionEnvelope":{"type":"object","additionalProperties":false,"required":["schemaVersion","schemaUrl","contentVersion","language","generatedAt","canonicalUrl","collection","count","data"],"properties":{"schemaVersion":{"const":"1.16.0"},"schemaUrl":{"type":"string","format":"uri"},"contentVersion":{"type":"string"},"language":{"const":"th-TH"},"generatedAt":{"type":"string","format":"date-time"},"canonicalUrl":{"type":"string","format":"uri"},"collection":{"enum":["place","accommodations","house-units","accommodation-map","site-pages","dining","schedule","stay-policies","stay-terms","travel-access","guest-preparation","contact","pet-policies","booking-process","special-events","activity-media","pricing-source","packages","activities","videos","faqs","policies","decisions"]},"count":{"type":"integer","minimum":0},"data":{"type":"array","items":{"oneOf":[{"$ref":"#/$defs/business"},{"$ref":"#/$defs/accommodation"},{"$ref":"#/$defs/houseUnit"},{"$ref":"#/$defs/accommodationMap"},{"$ref":"#/$defs/sitePage"},{"$ref":"#/$defs/diningProgram"},{"$ref":"#/$defs/scheduleProgram"},{"$ref":"#/$defs/stayCheckInPolicy"},{"$ref":"#/$defs/stayTermsDocument"},{"$ref":"#/$defs/travelAccessProgram"},{"$ref":"#/$defs/guestPreparation"},{"$ref":"#/$defs/contactProfile"},{"$ref":"#/$defs/petPolicy"},{"$ref":"#/$defs/bookingProcess"},{"$ref":"#/$defs/specialEventProgram"},{"$ref":"#/$defs/activityMedia"},{"$ref":"#/$defs/pricingSource"},{"$ref":"#/$defs/packageRecord"},{"$ref":"#/$defs/activity"},{"$ref":"#/$defs/videoRecord"},{"$ref":"#/$defs/faqRecord"},{"$ref":"#/$defs/policyRecord"},{"$ref":"#/$defs/ownerDecision"}]}}},"allOf":[{"if":{"properties":{"collection":{"const":"place"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/business"}}}}},{"if":{"properties":{"collection":{"const":"accommodations"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/accommodation"}}}}},{"if":{"properties":{"collection":{"const":"house-units"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/houseUnit"}}}}},{"if":{"properties":{"collection":{"const":"accommodation-map"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/accommodationMap"}}}}},{"if":{"properties":{"collection":{"const":"site-pages"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/sitePage"}}}}},{"if":{"properties":{"collection":{"const":"dining"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/diningProgram"}}}}},{"if":{"properties":{"collection":{"const":"schedule"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/scheduleProgram"}}}}},{"if":{"properties":{"collection":{"const":"stay-policies"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/stayCheckInPolicy"}}}}},{"if":{"properties":{"collection":{"const":"stay-terms"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/stayTermsDocument"}}}}},{"if":{"properties":{"collection":{"const":"travel-access"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/travelAccessProgram"}}}}},{"if":{"properties":{"collection":{"const":"guest-preparation"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/guestPreparation"}}}}},{"if":{"properties":{"collection":{"const":"contact"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/contactProfile"}}}}},{"if":{"properties":{"collection":{"const":"pet-policies"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/petPolicy"}}}}},{"if":{"properties":{"collection":{"const":"booking-process"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/bookingProcess"}}}}},{"if":{"properties":{"collection":{"const":"special-events"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/specialEventProgram"}}}}},{"if":{"properties":{"collection":{"const":"activity-media"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/activityMedia"}}}}},{"if":{"properties":{"collection":{"const":"pricing-source"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/pricingSource"}}}}},{"if":{"properties":{"collection":{"const":"packages"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/packageRecord"}}}}},{"if":{"properties":{"collection":{"const":"activities"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/activity"}}}}},{"if":{"properties":{"collection":{"const":"videos"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/videoRecord"}}}}},{"if":{"properties":{"collection":{"const":"faqs"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/faqRecord"}}}}},{"if":{"properties":{"collection":{"const":"policies"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/policyRecord"}}}}},{"if":{"properties":{"collection":{"const":"decisions"}}},"then":{"properties":{"data":{"type":"array","items":{"$ref":"#/$defs/ownerDecision"}}}}}]},"index":{"type":"object","additionalProperties":false,"required":["schemaVersion","schemaUrl","contentVersion","language","generatedAt","canonicalUrl","license","dataPolicy","availabilityService","business","endpoints"],"properties":{"schemaVersion":{"const":"1.16.0"},"schemaUrl":{"type":"string","format":"uri"},"contentVersion":{"type":"string"},"language":{"const":"th-TH"},"generatedAt":{"type":"string","format":"date-time"},"canonicalUrl":{"type":"string","format":"uri"},"license":{"const":"public-read-only"},"dataPolicy":{"$ref":"#/$defs/dataPolicy"},"availabilityService":{"$ref":"#/$defs/availabilityService"},"business":{"$ref":"#/$defs/business"},"endpoints":{"type":"object","additionalProperties":false,"required":["place","accommodations","houseUnits","accommodationMap","sitePages","dining","schedule","stayPolicies","stayTerms","travelAccess","guestPreparation","contact","petPolicies","bookingProcess","specialEvents","activityMedia","pricingSource","packages","activities","videos","faqs","policies","decisions","full","schema"],"properties":{"place":{"type":"string","format":"uri"},"accommodations":{"type":"string","format":"uri"},"houseUnits":{"type":"string","format":"uri"},"accommodationMap":{"type":"string","format":"uri"},"sitePages":{"type":"string","format":"uri"},"dining":{"type":"string","format":"uri"},"schedule":{"type":"string","format":"uri"},"stayPolicies":{"type":"string","format":"uri"},"stayTerms":{"type":"string","format":"uri"},"travelAccess":{"type":"string","format":"uri"},"guestPreparation":{"type":"string","format":"uri"},"contact":{"type":"string","format":"uri"},"petPolicies":{"type":"string","format":"uri"},"bookingProcess":{"type":"string","format":"uri"},"specialEvents":{"type":"string","format":"uri"},"activityMedia":{"type":"string","format":"uri"},"pricingSource":{"type":"string","format":"uri"},"packages":{"type":"string","format":"uri"},"activities":{"type":"string","format":"uri"},"videos":{"type":"string","format":"uri"},"faqs":{"type":"string","format":"uri"},"policies":{"type":"string","format":"uri"},"decisions":{"type":"string","format":"uri"},"full":{"type":"string","format":"uri"},"schema":{"type":"string","format":"uri"}}}}}}}