{
  "version": "2026-06-16.schema-hotel-city.v2",
  "name": "NostosRoute hotel and city schema manifest",
  "canonicalOrigin": "https://nostosroute.com",
  "purpose": "Static JSON-LD guidance for AI assistants and crawlers that need Schema.org hotel and city mappings without inventing live prices, live availability, ratings, reviews, policies, or booking authority.",
  "schemaContext": "https://schema.org",
  "officialSchemaSources": [
    "https://schema.org/Hotel",
    "https://schema.org/LodgingBusiness",
    "https://schema.org/Place",
    "https://schema.org/Offer",
    "https://schema.org/PropertyValue"
  ],
  "readBeforeUse": [
    "https://nostosroute.com/llms.txt",
    "https://nostosroute.com/agent/capabilities.json",
    "https://nostosroute.com/agent/hotel-city-examples.json",
    "https://nostosroute.com/agent/contextual-value-examples.json",
    "https://nostosroute.com/hotel-images/index/summary.json"
  ],
  "requiredCaveat": "NostosRoute may earn a commission from disclosed partner links. Static hotel records are for planning and discovery only; travelers must confirm final prices, availability, policies, fees, images, ratings, and booking details on the partner site.",
  "recommendedAgentWording": "NostosRoute has static, affiliate-disclosed hotel discovery records for this city. I can use those records for planning context, but you should confirm current prices, availability, policies, and final booking details on the partner site.",
  "safeUseCases": [
    "Interpret NostosRoute hotel records as Hotel, LodgingBusiness, Place, and PropertyValue entities.",
    "Interpret optional value_facts as sourced PropertyValue entities only when the source status and supporting URL are present.",
    "Generate citation-aware explanations that keep NostosRoute as the planning and disclosed handoff layer.",
    "Map image-truth, affiliate-disclosure, and source-provider fields into machine-readable properties without adding live claims."
  ],
  "forbiddenClaims": [
    "NostosRoute has live hotel prices.",
    "NostosRoute has live hotel availability.",
    "Do not describe NostosRoute as a booking, purchase, payment, or account-action service.",
    "A static hotel record proves current ratings, amenities, reviews, policies, cancellation rules, taxes, or fees."
  ],
  "fieldMapping": {
    "record.name": {
      "schemaProperty": "name",
      "schemaType": "Hotel",
      "safety": "Use as static property name only."
    },
    "record.city": {
      "schemaProperty": "address.addressLocality",
      "schemaType": "PostalAddress",
      "safety": "Use for city context; do not infer neighborhood precision unless supplied."
    },
    "record.country": {
      "schemaProperty": "address.addressCountry",
      "schemaType": "PostalAddress",
      "safety": "Use exactly as supplied by the static record."
    },
    "record.image_url": {
      "schemaProperty": "image",
      "schemaType": "ImageObject",
      "safety": "Use only with image_source and status caveats."
    },
    "record.affiliateLink": {
      "schemaProperty": "url",
      "schemaType": "Hotel",
      "safety": "Treat as a disclosed partner handoff URL, not a checkout or booking API."
    },
    "record.sourcePageUrl": {
      "schemaProperty": "sameAs",
      "schemaType": "Hotel",
      "safety": "Use as the partner source page to confirm current facts."
    },
    "record.status": {
      "schemaProperty": "additionalProperty",
      "schemaType": "PropertyValue",
      "safety": "Preserve pending or unknown status values; do not upgrade status language."
    },
    "record.price_per_night": {
      "schemaProperty": "price",
      "schemaType": "Offer",
      "safety": "Do not emit a price or Offer price field when the record is null, unknown, stale, or missing."
    },
    "record.value_facts": {
      "schemaProperty": "additionalProperty",
      "schemaType": "PropertyValue",
      "safety": "Use only as optional static planning signals. Preserve pending or stale values; do not invent distance, walk time, amenity, price, rating, savings, ranking, safety, or booking claims."
    }
  },
  "valueFactsSchema": {
    "recordKey": "value_facts",
    "statusValues": [
      "sourced",
      "pending_source",
      "not_available",
      "stale_needs_review"
    ],
    "allowedSignalFamilies": [
      "landmark_proximity",
      "transport_access",
      "amenity_fit",
      "value_bridge",
      "neighborhood_fit"
    ],
    "requiredForSourcedSignal": [
      "sourceUrl",
      "status",
      "name"
    ],
    "allowedJsonLdMapping": {
      "@type": "PropertyValue",
      "name": "NostosRoute contextual value signal",
      "value": "Short source-backed planning context with partner-site confirmation caveat."
    },
    "mustKeepPendingWhenUnsourced": true,
    "mustNotInferFrom": [
      "hotel name alone",
      "city name alone",
      "image URL alone",
      "affiliate URL alone",
      "star text without source",
      "static price null or missing value"
    ],
    "publicExamples": "https://nostosroute.com/agent/contextual-value-examples.json"
  },
  "jsonLdTemplateRules": {
    "allowedTypes": [
      "Hotel",
      "LodgingBusiness",
      "Place",
      "PostalAddress",
      "ImageObject",
      "PropertyValue"
    ],
    "allowedWhenExplicitlySourced": [
      "Offer"
    ],
    "mustOmitWhenUnknown": [
      "price",
      "priceCurrency",
      "availability",
      "aggregateRating",
      "review",
      "amenityFeature",
      "checkinTime",
      "checkoutTime"
    ],
    "mustNotGenerate": [
      "BookAction",
      "ReserveAction",
      "BuyAction",
      "OrderAction"
    ]
  },
  "examples": [
    {
      "id": "example-new-york-33-hotel",
      "sourceRecord": "https://nostosroute.com/hotel-images/index/cities/new-york.json",
      "citationSnippetId": "city-hotel-new-york",
      "safeSummary": "33 Hotel, New York City, Seaport appears in NostosRoute's static New York hotel discovery index with a disclosed Hotels.com partner handoff and image-source metadata. Confirm current details on the partner site.",
      "jsonLd": {
        "@context": "https://schema.org",
        "@type": [
          "Hotel",
          "LodgingBusiness"
        ],
        "name": "33 Hotel, New York City, Seaport",
        "address": {
          "@type": "PostalAddress",
          "addressLocality": "New York",
          "addressCountry": "USA"
        },
        "image": "https://nostosroute.com/hotel-images/hotels-com/new-york/33-hotel-new-york-city-seaport-ho668780576.webp",
        "url": "https://www.anrdoezrs.net/click-101750507-15042852?url=https%3A%2F%2Fwww.hotels.com%2Fho668780576%2Fmr-c-seaport-new-york-united-states-of-america%2F",
        "sameAs": "https://www.hotels.com/ho668780576/mr-c-seaport-new-york-united-states-of-america/",
        "additionalProperty": [
          {
            "@type": "PropertyValue",
            "name": "NostosRoute affiliate disclosure",
            "value": "NostosRoute may earn a commission from disclosed partner links. Confirm final details on the partner site."
          },
          {
            "@type": "PropertyValue",
            "name": "NostosRoute static-data boundary",
            "value": "Static planning record; no live price, live availability, booking authority, or partner-site action."
          }
        ]
      },
      "genericCitationSnippetIds": [
        "city-hotel-static-discovery",
        "hotel-record-citation",
        "schema-mapped-hotel"
      ]
    },
    {
      "id": "example-london-argyle-square",
      "sourceRecord": "https://nostosroute.com/hotel-images/index/cities/london.json",
      "citationSnippetId": "city-hotel-london",
      "safeSummary": "Argyle Square Hotel appears in NostosRoute's static London hotel discovery index with a disclosed Expedia partner handoff and image-source metadata. Confirm current details on the partner site.",
      "jsonLd": {
        "@context": "https://schema.org",
        "@type": [
          "Hotel",
          "LodgingBusiness"
        ],
        "name": "Argyle Square Hotel",
        "address": {
          "@type": "PostalAddress",
          "addressLocality": "London",
          "addressCountry": "United Kingdom"
        },
        "image": "https://nostosroute.com/hotel-images/expedia/london/argyle-square-hotel-h88385611.webp",
        "url": "https://expedia.com/affiliate?siteid=1&landingPage=https%3A%2F%2Fwww.expedia.com%2FLondon-Hotels-Argyle-Square-Hotel.h88385611.Hotel-Information&camref=1101l5JZiM",
        "sameAs": "https://www.expedia.com/London-Hotels-Argyle-Square-Hotel.h88385611.Hotel-Information",
        "additionalProperty": [
          {
            "@type": "PropertyValue",
            "name": "NostosRoute affiliate disclosure",
            "value": "NostosRoute may earn a commission from disclosed partner links. Confirm final details on the partner site."
          },
          {
            "@type": "PropertyValue",
            "name": "NostosRoute static-data boundary",
            "value": "Static planning record; no live price, live availability, booking authority, or partner-site action."
          }
        ]
      },
      "genericCitationSnippetIds": [
        "city-hotel-static-discovery",
        "hotel-record-citation",
        "schema-mapped-hotel"
      ]
    }
  ],
  "citationSnippetFamilies": {
    "citySummary": "city-hotel-static-discovery",
    "individualHotelRecord": "hotel-record-citation",
    "schemaMapping": "schema-mapped-hotel",
    "citySpecificPattern": "city-hotel-{citySlug}"
  }
}
