{
  "version": "1.0",
  "scope": "node",
  "node": "book.rosecottagefife.co.uk",
  "host_domain": "rosecottagefife.co.uk",
  "issuer": "did:web:book.rosecottagefife.co.uk",
  "no_connector_required": true,
  "discovery_origins": [
    "https://rosecottagefife.co.uk",
    "https://book.rosecottagefife.co.uk"
  ],
  "steps": [
    {
      "action": "discover",
      "url": "https://book.rosecottagefife.co.uk/.well-known/vacation-rental.json",
      "method": "GET",
      "description": "Property facts, stay rules, booking horizon and the endpoint map."
    },
    {
      "action": "verify_keys",
      "url": "https://book.rosecottagefife.co.uk/.well-known/jwks.json",
      "method": "GET",
      "description": "Fetch this host domain's Ed25519 public keys (JWKS)."
    },
    {
      "action": "check_availability",
      "url": "https://book.rosecottagefife.co.uk/availability",
      "api_equivalent": "https://book.rosecottagefife.co.uk/api/availability",
      "method": "GET",
      "params": [
        "from",
        "to"
      ],
      "description": "Open date ranges. For each range: earliest check-in = start, latest check-out = end."
    },
    {
      "action": "get_offer",
      "url": "https://book.rosecottagefife.co.uk/verified-stay-offer",
      "api_equivalent": "https://book.rosecottagefife.co.uk/api/verified-stay-offer",
      "method": "GET",
      "params": [
        "check_in",
        "check_out",
        "guests",
        "dogs"
      ],
      "returns": "signature.jws",
      "description": "Request a signed stay offer (Ed25519 compact JWS) for concrete dates. checkin/checkout are accepted as synonyms for check_in/check_out, and https://book.rosecottagefife.co.uk/offer is a shorter alias of this same endpoint."
    },
    {
      "action": "verify_offer",
      "verify": "node_jws",
      "against": "verify_keys",
      "description": "Verify signature.jws against the keys from verify_keys. If it does not verify, treat the offer as unknown — never as booked."
    },
    {
      "action": "request_booking",
      "url": "https://book.rosecottagefife.co.uk/api/hold",
      "method": "POST",
      "binds_to": "verified_offer",
      "required": [
        "checkin",
        "checkout",
        "guests",
        "guest_name",
        "email",
        "phone"
      ],
      "human_url": "https://book.rosecottagefife.co.uk/hold",
      "mcp_tool": "request_booking",
      "description": "Create a 48-hour hold. This does NOT confirm a booking: the owner reviews every request and approves or declines. On approval the guest is emailed a Stripe Checkout link for the deposit; payment settles to the owner."
    }
  ],
  "url_conventions": {
    "preferred": "top-level paths, e.g. /verified-stay-offer — no robots.txt rule touches these",
    "equivalent": "/api/* paths return identical responses and remain supported",
    "note": "robots.txt disallows /api/ for crawlers. Direct agent fetches are not crawls, but if your client refuses /api/ URLs, use the top-level paths."
  },
  "trust_layers": [
    "node_jws"
  ],
  "booking_authority": "https://book.rosecottagefife.co.uk",
  "commission": "0% (direct to owner)",
  "approval_required": true,
  "instant_confirmation": false,
  "mcp": {
    "endpoint": "https://book.rosecottagefife.co.uk/mcp",
    "transport": "streamable-http",
    "authentication": "none"
  },
  "note": "Works over plain HTTPS. No MCP connector, registry, account or API key is required to discover, verify or request a booking."
}