Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "get_customer_policy", "get_offer_status", "get_service_options" and 2 more
Read currentaccount,account/guestguest-bookingeligibility andpickup-lead-timepickupruleslead-timebeforerulespreparingfor a new offer.UseCall after get_service_optionsforandservicebeforecapabilitiesquote_rideandorquote_rideprepare_offer.forThisprice.toolTheseanswers purchaserules doeligibility, notauthorizeprice,amendmentscapacity, orcancellation. Selection: - Keep offerKey tiedauthority tothe published service locationamend/cancelthroughoutanpolicy,existingquotebooking. Selection andoffer preparation.timing: -localeRetaincontrolsthelanguageselectedonly:offerKeyswitchingacrossdethetoworkflow;enlocaleretainschangesthatlanguageofferKeywithoutandchanging location. A different offerKey requires a fresh policy read.- Interpret intended pickup inthereturnedtimeZone andtimeZone; compareitstheleadintervaltimefrom now with terms.minimumLeadTimeMinutes.Fictional example:Aafictional 120-minute minimumis not met byexcludes pickup 90 minutesaway;awaydowithoutnotimplyingtreatvehiclethatunavailability. availableresultreturnsasaccountvehiclerequirements,unavailability.guest-booking rules, lead-time terms, timeZone and observedAt. observedAtisdatesthethis policy readtime, not an expiry orreservedcapacitycapacity.hold. Revalidate beforeprepare_offer. Onpreparation; unavailable,stopleaves eligibilityassumptions.unverified. The customer reviewscompletebound offer termsbeforeandconfirmation;confirms in checkout; confirmation requires provider-confirmed full payment. Reading policy creates no booking.
ResumeRecover the stored outcome of exactly one prepare_offer submission. Choose this for “did my original offer submission finish?” or recovery after checkout, using its originalsubmissionIdsubmissionId/resumeToken.andItprivatecannotresumeToken.quoteUseathisnewwhileride,thecreatesubmissionanotherisoffer,
Read supported ride services, requiredridefacts and theservice-locationselectedtimeservicezonelocation's timeZone. Call before collecting a newride.ride;Usefollow with get_customer_policy forpurchase ruleseligibility, quote_ride for price,orthen prepare_offer only for an explicitly requested offer.LanguageOmittingandofferKeylocation
Create one unpaid reservationwith aand binding offer,onlyforaancustomer-requestedexplicitly requested new ride.Use quote_ride for price alone and prepare_booking_change forPrice-onlyanquestionsexistingusebooking.quote_ride;Noamendmentscustomeruseaccountprepare_booking_change.isPreparation
Calculate aPreview pricepreviewfor complete ride facts without contact details.UseChoose this forpricing;“what would this new ride cost?”, prepare_offercreatesforan“createexplicitlythe requested newofferoffer”,whileand prepare_booking_changereviewsfor review of an existing booking's amendment.Keeprideget_offer_status
Changed the definition of "get_customer_policy" and "prepare_offer"
Read current account, guest-booking and pickup-lead-time rules before preparing a new offer. Use get_service_options for servicescopecapabilitiesorand quote_ride forpricing;price.thisThesepolicypurchasecannotrulesauthorizedobookingnotchanges
Changed the definition of "prepare_offer"
⟨45 unchanged words⟩ and private resumeToken with one unchanged ride, contact,andlocale, serviceselection.selection and supplied partner capability. Changing language or recipient conflicts; it does not edit the original offer. Keep that pair for retries and get_offer_status; never ⟨80 unchanged words⟩
Changed the definition of "get_customer_policy", "get_offer_status", "get_service_options" and 2 more
UseReadaftercurrentget_service_optionsaccount, guest-booking and pickup-lead-time rules beforeprepare_offeratonewreadoffer.currentUseaccount,get_service_optionsguest-booking
Changed the definition of "get_customer_policy", "get_offer_status", "get_service_options" and 2 more
⟨43 unchanged words⟩ "offerKey":{"description":"Optional existing publishedproviderprovider/supplier offer key. Selects its configured service location; it is not a customer bookingKey or bookingReference and grants no bookingauthority.access.","pattern":"^[a-z0-9][a-z0-9_-]{0 ⟨6 unchanged words⟩
⟨7 unchanged words⟩ :{"status":{"const":"invalid_request","description":"Input does not match this operation's contract; correct the facts before retrying.","type":"string"}},"required":["status ⟨2 unchanged words⟩
Changed the definition of "get_customer_policy", "get_offer_status", "get_service_options" and 2 more
Use after get_service_options and before prepare_offer toretrieveread current account, guest-booking and minimum-lead-time rules. RefreshReturnsbeforeobservedAtpreparingandanrevalidationRequiredoffer:refreshobservedAttherecordsrulesthebefore
Changed the definition of "prepare_offer"
⟨47 unchanged words⟩ email","maxLength":254,"pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨681 unchanged words⟩
Changed the definition of "get_customer_policy", "get_offer_status", "get_service_options" and 2 more
Useforaftercurrentget_service_optionsbookingandpreparationbeforerules:prepare_offeraccounttorequirementretrieve current account,guestguest-bookingbookingand minimum-lead-time rules. Returns observedAt
Changed the definition of "get_offer_status", "prepare_offer" and "quote_ride"
⟨14 unchanged words⟩ its original submissionId/resumeToken pair, including pending, prepared, expired orexpiredrecordedstatus.booking/payment/fulfillmentItafter payment. Open customerPortalUrl for existing Samuelz ID login and private own-booking view. This isnotonebookingoriginal submission, never account history, a newpricequote, cancellation or modification. Use quote_ride for ⟨17 unchanged words⟩
Changed the definition of "get_customer_policy", "get_offer_status", "get_service_options" and 2 more
ReadUse for current booking preparationterms,rules: account requirement, guest booking and minimum lead time.Service-specificUsecancellationget_service_optionsandforwaitingservicetermsscopemustorbequote_ride
Certificate changed, valid to 2026-12-29
Changed the definition of "prepare_offer"
⟨55 unchanged words⟩ {64}$","type":"string"},"firstTouchTrackingToken":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"locale":{"default":"de","enum": ⟨161 unchanged words⟩
Changed the definition of "prepare_offer" and "quote_ride"
⟨93 unchanged words⟩ "minLength":2,"type":"string"},"flightNumber":{"maxLength":240,"minLength":1,"type":"string"},"hours":{"maximum":24,"minimum":1,"type":"integer"},"luggage":{"maxLength":240,"minLength":1,"type":"string"},"passengers":{"maximum":60,"minimum":1, ⟨58 unchanged words⟩ ,"passengers","tripType"],"type":"object"},"specialRequests":{"maxLength":500,"minLength":1,"type":"string"},"submissionId":{"format":"uuid", ⟨29 unchanged words⟩
⟨32 unchanged words⟩ "minLength":2,"type":"string"},"flightNumber":{"maxLength":240,"minLength":1,"type":"string"},"
Certificate recorded, valid to 2026-10-31
Authorization not required
Unknown → Live
First tool surface recorded: 5 tools (server version 1.1.0)
https://platform-api.samuelz.com/api/v1/mcp/chauffeur/samuelz-chauffeur (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 18 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨609 unchanged words⟩ in 24-hour HH:mm format, in theproviderconfigured timeZone(Samuelz:returnedEurope/Berlin);by get_service_options for the same offerKey; not UTC or an offset timestamp.","pattern ⟨162 unchanged words⟩
⟨350 unchanged words⟩ in 24-hour HH:mm format, in theproviderconfigured timeZone(Samuelz:returnedEurope/Berlin);by get_service_options for the same offerKey; not UTC or an offset timestamp.","pattern ⟨100 unchanged words⟩
PrepareCreate one unpaid reservationandwith a binding offerfor an eligible new ride, onlyafter theforcustomeraexplicitlycustomer-requestedrequestsnewit.ride. Use quote_ride for price alone,orand prepare_booking_change for an existing booking.PublicNooffercustomerpreparationaccountneedsisnoneededaccount;for preparation; private booking accessremainsneedsseparatelyseparateauthorized.authorization.PairBindcaller-generatedthe retry pair to the intent: - Generate submissionId and private resumeToken once. Keep both withonetheunchangedoriginal ride, contact, locale,service selectionofferKey and supplied partner capability. -ChangingAlanguagechanged recipient orrecipientlanguageconflicts;conflicts with that intent; it does noteditupdate theoriginaloffer.KeepContactthatidentifiespairtheforreachableretriesrecipient,andnotget_offer_status;aneverbooking-accesscreategrant. Actanotheronpairthemerelyresult: -toprepared:escapeopenpending,checkoutUrl;ambiguoustheorcustomerconflict.reviewsContactthesuppliesboundaamount,reachableexpiryrecipientand full terms,notthenbooking-accessexplicitlyauthority. Reviewconfirms.andNoexplicitlychargeconfirmortheconfirmationboundoccursofferinviathischeckoutUrl,call. -thenpending/rate_limited:usewaitget_offer_statusretryAfterSeconds; resume with the original pairtothroughreadget_offer_status. - ambiguous/conflict: inspect theoutcome.originalWaitsubmission;retryAfterSecondsneverwhengeneratependingaornewrate_limited.pairThetoresumebypassproofit. -lastsavailable:24usehoursthatfrombooking'sfirstID/referenceclaimedonlyintake;withinofferitsexpiryseparatelyisauthorizedseparate.lifecycle. Thepreparedresumereturnsproofreviewlastslinks;24availablehourssuppliesfromthisfirstbooking'sclaimedidentifiersintake.forRetriesitsrenewcustomer-authorizedneitherlifecycle.thatThislifetimecallnordoesthenotseparatechargeoffer.expiresAt.orKeepconfirmreviewalinksbooking.and resume proof private.
⟨124 unchanged words⟩ :"string"},"observedAt":{"description":"ObservationISO 8601 UTC timestampofwhen the current minimum-lead-time policyread;wasnoread,validitynotwindowitsisexpirypromised.or a guarantee of future validity.","type":"string"},"revalidationRequired":{ ⟨169 unchanged words⟩
UseResumeafterexactly one prepare_offerwithsubmissiontheusing its originalsubmissionId/resumeTokensubmissionIdpair.andItsprivatestoredresumeToken.proofUseexpiresthis24whilehoursthe submission is pending or afterfirsttheclaimedcustomerintake;reviewsretriescheckout;doget_booking_status reads an already selected OAuth booking instead. The pair identifies the original intent, notrenewait.supplierThisofferKeydiffersor a customer login. Do not combine credentials fromoffer.expiresAt.differentNosubmissions.locale;Unchanged retries preserve the original languageisandpreserved.do not renew the 24-hour resume-proof lifetime or offer expiry. preparedreturnssupplies review links; availablereturnssuppliesthisthat booking'sbookingKey/bookingReferenceidentifiers and recordedbooking/payment/fulfillment. Supplier offerKey is notoutcome.aWaitbookingretryAfterSecondsidentifier.forForpending.pendingOnwaitambiguousretryAfterSecondsorandconflictretryinspect thepair. Inspectoriginalambiguous/conflictintent before retryingprepare_offerpreparation.unchanged.not_found denies proof access; unavailable is not vehicle-availability evidence.Use quote_ride for price, customerPortalUrl for private login.Nomutation, history, cancellationbookingoractionmodification.occurs.
Use first to read publishedReadservicesupportedscopeservices, required ride facts andlocalthetimeZone;service-locationnotimepricezoneorbeforeavailabilitycollectingisaconfirmed. OptionalnewofferKeyride.selectsUseanget_customer_policyexistingforpublishedpurchaseoffer'srules,configuredquote_ridelocation;foromitprice, or prepare_offer fortheandefaultexplicitlyscope. HTTPrequestedusesoffer. Languageno-store.andRe-readlocationbeforearequoting;independent:nolocale=defreshnessdoeswindownotisselectpromised.Germany,Thisandreadlocale=en does notconsumemove thequoteservicerate-limitelsewhere.budget. CorrectOmitinvalid_requestofferKeyinput;forunavailablethemeanspublishedscopedefault;couldotherwisenotusebearead.knownUsepublishedget_customer_policyselectionforandruleskeep it across policy,quote_ridequoteforandpriceoffer. Changing location requires reading its timeZone before interpreting pickup times. This uncached read consumes no quote admission. available describes supported requests,ornotprepare_offerreservedforvehicles;anre-readexplicitlybeforerequestedquoting.offer.Correct invalid_request facts. unavailable leaves service scope unverified.
UsePrepareonlyoneforunpaidanreservationexplicitand binding offerrequest:forofferRequested=true,ancompleteeligible new ridefacts,onlyORtheE.164customerphone.explicitlyForrequests it. Use quote_ride for priceonlyalone,useorquote_ride.prepare_booking_change for an existing booking. Public offer preparation needs no account; private booking access remains separately authorized.EligiblePairridescaller-generatedgetsubmissionId and private resumeToken with oneunpaidunchangeddraftride, contact andofferservicelink.selection.ReviewKeepboundthattermspair for retries andconfirmget_offer_status;vianevercheckoutUrl;createnoanotherchargepairormerelybookingtoconfirmationescapeoccurspending,here. RetryambiguousunchangedorsubmissionId/resumeToken/inputs.conflict.ForContactpending/rate_limitedsupplieswaitaretryAfterSeconds;reachableonrecipient,ambiguous/conflictnotinspectbooking-accessget_offer_status.authority.ChangedReviewfactsandneedexplicitlyaconfirmnewtheexplicitboundintent.offerTheviacallercheckoutUrl,generatesthensubmissionIduse(UUID)get_offer_statusandwithresumeTokenthe(32originalrandompairbytestoasread64thehexoutcome.characters);WaittheretryAfterSecondsstoredwhen pending or rate_limited. The resume proofexpireslasts 24 hoursafterfrom first claimedintake,intake;separatelyofferfromexpiryoffer.expiresAt.is separate. prepared returnslinks, notreviewbookinglinks;IDs.availableOnlysuppliesavailablethisreturnsbooking'sbookingKey/bookingReferenceidentifiers forthatitssamecustomer-authorizedbooking;lifecycle.supplierThisofferKeycallisdoes notachargebookingorID.confirm a booking.
Use after get_service_options forCalculate a price previewwithfor complete ride facts without contact details. Use for pricing; prepare_offer creates an explicitly requested new offer, while prepare_booking_change reviews an existing booking's amendment. Keep ride times in the timeZone returnedtimeZone;fornothecontactsameisofferKey.needed.ReturntripsserviceneedneedsreturnDate/returnTime.itsHourlylater return pickup; hourly service needsserviceType=hourly,one_waytripType=one_wayand duration. Vehicle preference andhours. RevalidatespecialRequests share a 500-character combined note limit, including thecalculatedAtpreferencepreview.labelForandrate_limitedseparator:waitindividuallyretryAfterSeconds;validfollowfieldsreview_requiredcanguidancetogetherwithoutexceedinferringit.vehicleKeepunavailability.volunteered requirements intact; ask for clarification rather than silently truncate them.Createsquotednoreturnsoffer,areservationprice/tax/inclusion breakdown by leg,chargenotorreservedmessage.capacity.UseRoute/pricingprepare_offerreadsonlyconsumeforquote admission and repeated calls may differ. Revalidate before anexplicitoffer. Wait retryAfterSeconds on rate_limited; follow review_required guidance. No offer,request.reservation, charge or message is created.
Use after prepare_offer with the original submissionId/resumeTokenpair,pair.validItsforstored proof expires 24hours.hours after first claimed intake; retries do not renew it. This differs from offer.expiresAt. No locale; original language is preserved.Readspreparedofferreturnsstaterevieworlinks; available returns this booking's bookingKey/bookingReference and recorded booking/payment/fulfillment. Supplier offerKey is not a booking identifier. For pending wait retryAfterSeconds and retry the pair. ⟨28 unchanged words⟩
⟨5 unchanged words⟩ ,"properties":{"resumeToken":{"description":"PrivateCaller-generated private 64-character hexadecimal secretgeneratedfor thissubmission.submissionReuse(32 random bytes). Keep its originalpairsubmissionIdwithpair.submissionIdTheforstored resume proof expires 24 hours after first claimed intake; unchanged retries do not renew it. This is separate from offer.expiresAt andstatus;isnevernotsubstitutean accountcredentials.
⟨7 unchanged words⟩ :{"status":{"const":"invalid_request","description":"Input does not match this operation's contract; correct the facts before retrying.","type":"string"}},"required":["status ⟨2 unchanged words⟩ additionalProperties":false,"properties":{"bookingUrl":{"description":"Published customer booking page for this provider and locale; the URL does not grant private booking access or confirm availability.","format":"uri","type":"string"},"status":{"const":"unavailable","description":"The requested information could not be supplied safely; this is not vehicle-unavailability evidence.","type":"string"}},"required":["status ⟨2 unchanged words⟩ additionalProperties":false,"properties":{"retryAfterSeconds":{"description":"Wait at least this many seconds, then use the same original submissionId/resumeToken pair for status or unchanged retry.","exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"status":{"const":"pending","description":"The original offer-intent execution is still pending; no completed offer result is available.","type":"string"}},"required":["status ⟨3 unchanged words⟩ additionalProperties":false,"properties":{"retryAfterSeconds":{"description":"Wait at least this many seconds before retrying the unchanged submissionId/resumeToken and facts.","exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"status":{"const":"rate_limited","description":"Offer preparation admission was rate-limited; retry only the unchanged explicit offer intent.","type":"string"}},"required":["status ⟨3 unchanged words⟩ additionalProperties":false,"properties":{"status":{"description":"conflict means stored intent/offer facts disagree; ambiguous means execution or bound evidence cannot safely be resolved; not_found denies access to the original submission proof. Inspect status rather than blindly creating another offer.","
⟨43 unchanged words⟩ "offerKey":{"description":"Optional existing publishedproviderprovider/supplier offer key. Selects its configured service location; it is not a customer bookingKey or bookingReference and grants no bookingauthority.access.","pattern":"^[a-z0-9][a-z0-9_-]{0 ⟨6 unchanged words⟩
⟨7 unchanged words⟩ :{"status":{"const":"invalid_request","description":"Input does not match this operation's contract; correct the facts before retrying.","type":"string"}},"required":["status ⟨2 unchanged words⟩ additionalProperties":false,"properties":{"bookingUrl":{"description":"Published customer booking page for this provider and locale; the URL does not grant private booking access or confirm availability.","format":"uri","type":"string"},"status":{"const":"unavailable","description":"The requested information could not be supplied safely; this is not vehicle-unavailability evidence.","type":"string"}},"required":["status ⟨2 unchanged words⟩ additionalProperties":false,"properties":{"bookingUrl":{"description":"Published customer booking page for this provider and locale; the URL does not grant private booking access or confirm availability.","format":"uri","type":"string"},"hourlyRideFacts":{"description":"Additional hourly-service fields and required service/trip-type values.","items":{"type":"string"},"type":"array"},"location":{"additionalProperties":false,"description":"Location configured for the supplied published offerKey; omitted for the default service scope.","properties":{"countryCode":{"description":"Country code configured for this service location.","type":"string"},"key":{"description":"Configured service-location key selected by the published supplier offerKey.","type":"string"},"label":{"description":"Location label in the requested language.","type":"string"}},"required":["key ⟨2 unchanged words⟩ ,"type":"object"},"nextAction":{"description":"Guidance to collect complete ride facts and request a price preview; no contact details are required for quoting.","type":"string"},"provider":{"description":"Published display name of the service provider.","type":"string"},"requiredRideFacts":{"description":"Ride fields to collect before quoting a transfer.","items":{"type":"string"},"type":"array"},"returnRideFacts":{"description":"Additional return-trip fields to collect for an outbound and later return pickup.","items":{"type":"string"},"type":"array"},"services":{"description":"Published service definitions and supported trip types.","items":{"additionalProperties":false,"properties":{"availability":{"const":"requires_offer_review","description":"Availability/acceptance still require review of an actual offer.","type":"string"},"key":{"description":"Published service identifier, such as transfer or hourly service.","type":"string"},"tripTypes":{"description":"Trip types supported by this service definition; not confirmed availability.","items":{"enum":["one_way","return" ⟨12 unchanged words⟩ },"status":{"const":"available","description":"Published service information is readable; no price, acceptance or availability is confirmed.","type":"string"},"timeZone":{"description":"Configured local provider time zone for ride dates and pickup times.","type":"string"}},"required":[" ⟨13 unchanged words⟩
⟨52 unchanged words⟩ inspect get_offer_status. Changed facts need a new explicitintent;intent.expired/revisedTheofferscallerneedgeneratescurrentsubmissionIdreview.(UUID) and resumeToken (32 random bytes as 64 hex characters); the stored resume proof expires 24 hours after first claimed intake, separately from offer.expiresAt. prepared returns links, not booking IDs. Only available returns bookingKey/bookingReference for that same booking; supplier offerKey is not a booking ID.
⟨224 unchanged words⟩ "offerKey":{"description":"Optional existing publishedproviderprovider/supplier offer key. Selects its configured service location; it is not a customer bookingKey or bookingReference and grants no bookingauthority.access.","pattern":"^[a-z0-9][a-z0-9_-]{0 ⟨27 unchanged words⟩ :"boolean"},"resumeToken":{"description":"PrivateCaller-generated private 64-character hexadecimal secretgeneratedfor thissubmission.submissionReuse(32 random bytes). Keep its originalpairsubmissionIdwithpair.submissionIdTheforstored resume proof expires 24 hours after first claimed intake; unchanged retries do not renew it. This is separate from offer.expiresAt andstatus;isnevernotsubstitutean accountcredentials.credential.","pattern":"^[a-f0-9]{64}$" ⟨388 unchanged words⟩ :"string"},"submissionId":{"description":"IdentifiesCaller-generated UUID for one explicitly requested offer intent.GenerateKeepatheUUIDsame submissionId/resumeToken and unchanged facts foraretriesrequestedandnewstatus;offer;akeepnewitexplicitwithintenttheneedssamearesumeTokennewforpair.unchangedThisretriesisandnotstatus.a bookingKey.","format":"uuid","pattern":"^ ⟨28 unchanged words⟩
⟨7 unchanged words⟩ :{"status":{"const":"invalid_request","description":"Input does not match this operation's contract; correct the facts before retrying.","type":"string"}},"required":["status ⟨2 unchanged words⟩ additionalProperties":false,"properties":{"bookingUrl":{"description":"Published customer booking page for this provider and locale; the URL does not grant private booking access or confirm availability.","format":"uri","type":"string"},"status":{"const":"unavailable","description":"The requested information could not be supplied safely; this is not vehicle-unavailability evidence.","type":"string"}},"required":["status ⟨2 unchanged words⟩ additionalProperties":false,"properties":{"retryAfterSeconds":{"description":"Wait at least this many seconds, then use the same original submissionId/resumeToken pair for status or unchanged retry.","exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"status":{"const":"pending","description":"The original offer-intent execution is still pending; no completed offer result is available.","type":"string"}},"required":["status ⟨3 unchanged words⟩ additionalProperties":false,"properties":{"retryAfterSeconds":{"description":"Wait at least this many seconds before retrying the unchanged submissionId/resumeToken and facts.","exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"status":{"const":"rate_limited","description":"Offer preparation admission was rate-limited; retry only the unchanged explicit offer intent.","type":"string"}},"required":["status ⟨3 unchanged words⟩ additionalProperties":false,"properties":{"status":{"description":"conflict means stored intent/offer facts disagree; ambiguous means execution or bound evidence cannot safely be resolved; not_found denies access to the original submission proof. Inspect status rather than blindly creating another offer.","
⟨43 unchanged words⟩ "offerKey":{"description":"Optional existing publishedproviderprovider/supplier offer key. Selects its configured service location; it is not a customer bookingKey or bookingReference and grants no bookingauthority.access.","pattern":"^[a-z0-9][a-z0-9_-]{0 ⟨395 unchanged words⟩
⟨7 unchanged words⟩ :{"status":{"const":"invalid_request","description":"Input does not match this operation's contract; correct the facts before retrying.","type":"string"}},"required":["status ⟨2 unchanged words⟩ additionalProperties":false,"properties":{"bookingUrl":{"description":"Published customer booking page for this provider and locale; the URL does not grant private booking access or confirm availability.","format":"uri","type":"string"},"status":{"const":"unavailable","description":"The requested information could not be supplied safely; this is not vehicle-unavailability evidence.","type":"string"}},"required":["status ⟨2 unchanged words⟩ additionalProperties":false,"properties":{"bookingUrl":{"description":"Published customer booking page for this provider and locale; the URL does not grant private booking access or confirm availability.","format":"uri","type":"string"},"retryAfterSeconds":{"description":"Wait at least this many seconds before retrying the same quote request.","exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"status":{"const":"rate_limited","description":"Quote admission is currently rate-limited; no quote was returned.","type":"string"}},"required":["status ⟨4 unchanged words⟩ additionalProperties":false,"properties":{"bookingUrl":{"description":"Published customer booking page for this provider and locale; the URL does not grant private booking access or confirm availability.","format":"uri","type":"string"},"message":{"description":"Customer-language explanation of the required review.","type":"string"},"review":{"additionalProperties":false,"description":"Structured review reason and next step when supplied; not an availability confirmation.","properties":{"availabilityConfirmed":{"const":false,"description":"This review result does not confirm availability.","type":"boolean"},"code":{"description":"Reason for further requirements, model, address, service-scope, booking-window or route review; not vehicle-unavailability evidence.","enum":["additional_requirements_review","model_guarantee_review","address_review", ⟨4 unchanged words⟩ string"},"customerContactRequired":{"const":false,"description":"No customer contact is required for this price/requirements review.","type":"boolean"},"nextAction":{"const":"review_requirements","description":"Review the stated requirements before proceeding; do not infer acceptance or confirmed availability.","type":"string"}},"required":["code ⟨5 unchanged words⟩ },"status":{"const":"review_required","description":"The ride facts or requirements require further review; no availability conclusion is made.","type":"string"}},"required":["status ⟨6 unchanged words⟩ properties":{"bookingConfirmed":{"const":false,"description":"A quote does not confirm or create a booking.","type":"boolean"},"bookingUrl":{"description":"Published customer booking page for this provider and locale; the URL does not grant private booking access or confirm availability.","format":"uri","type":"string"},"nextAction":{"description":"Guidance to proceed only to an explicitly requested offer after reviewing the preview.","type":"string"},"quote":{"additionalProperties":false,"description":"Calculated price preview and tax/inclusion breakdown; no reservation or availability confirmation.","properties":{"billableHoursPerServiceLine":{"description":"Billable hours used for each calculated service line.","exclusiveMinimum":0,"type":"number"},"calculatedAt":{"description":"Timestamp of this preview calculation, not a guaranteed price-validity window.","type":"string"},"currency":{"description":"Currency of the price preview.","type":"string"},"grossTotalCents":{"description":"Gross total of the preview in the returned currency's minor units (EUR cents).","maximum":9007199254740991,"minimum":0,"type":"integer"},"parkingIncluded":{"description":"Whether parking costs are included in the preview.","type":"boolean"},"pricesIncludeVat":{"description":"Whether the returned price includes VAT.","type":"boolean"},"revalidationRequired":{"const":true,"description":"Revalidate price and terms before preparing or confirming an offer.","type":"boolean"},"serviceLines":{"description":"Price breakdown by outbound/return service line.","items":{"additionalProperties":false,"properties":{"direction":{"description":"The outbound or return leg priced by this service line.","enum":["outbound","return"],"type":"string"},"grossAmountCents":{"description":"Gross price for this service line in the returned currency's minor units.","maximum":9007199254740991,"minimum":0,"type":" ⟨6 unchanged words⟩ ,"type":"array"},"tollsIncluded":{"description":"Whether toll costs are included in the preview.","type":"boolean"},"vatRateBasisPoints":{"description":"VAT rate in basis points: 10000 basis points equal 100 percent.","maximum":9007199254740991,"minimum":0,"type":"integer"},"vehicleCount":{"description":"Vehicle count used in this price calculation, not confirmed vehicle availability.","exclusiveMinimum":0,"maximum":9007199254740991,"type":" ⟨14 unchanged words⟩ "object"},"status":{"const":"quoted","description":"A price preview was calculated; it must be revalidated before an actual offer.","type":"string"}},"required": ⟨9 unchanged words⟩
Useto read one existingafterrequestprepare_offer withitsthe original submissionId/resumeToken pairwithin the original 24-hour,window.validReturnsforoffer24statehours.orNorecordedlocale;booking/payment/fulfillmentoriginalafterlanguagepayment;isnopreserved. Readspricingoffercallstate ornew businessrecordedaction.booking/payment/fulfillment. For pending,wait retryAfterSeconds and retrythatthe pair.ForInspect ambiguous/conflictinspectbeforethatretryingintent;prepare_offer unchanged. not_found deniesaccess andaccess; unavailable is notvehiclevehicle-availability evidence.OpenUse quote_ride for price, customerPortalUrl for private login. Nolocale (original language)mutation, history, cancellation or modification.
Use first tolearn thisreadprovider'spublished service scope, required ride facts and localtimeZone.timeZone;Readnocurrentpricepublishedorfacts;availabilitydoisnotconfirmed. OptionalassumeofferKeyadditionalselectslocations.anLanguageexistingdefaultspublishedtooffer'sEnglish;configuredpasslocation;locale=deomit forGerman,thewithoutdefaultchangingscope. HTTPtimeZone.usesItno-store.givesRe-read before quoting; nopricefreshnessorwindowavailabilityisconfirmation.promised. This read does not consume the quote rate-limit budget. Correct invalid_request input; unavailable means scope could not be read. Use get_customer_policy forbookingrules, quote_ride foraprice, or prepare_offeronly afterfor anexplicitexplicitlyofferrequestedrequest.offer.
Use only for an explicit offer requestwith: offerRequested=true, complete ride factsand, email OR E.164 phone.CreatesFor price only use quote_ride. Eligible rides get one unpaid draft andanofferlink; the customerlink.reviewsReview bound terms andconfirmsconfirm viacheckoutUrl.checkoutUrl;Nono charge or bookingconfirmation. Use quote_ride forconfirmationprice-onlyoccursquestions.here. RetryKeepunchangedsubmissionId,submissionId/resumeToken/inputs.resumeTokenForandpending/rate_limitedinputswaitunchangedretryAfterSeconds; onretries;ambiguous/conflict inspectget_offer_status on ambiguous/conflict. On rate_limited wait retryAfterSeconds.get_offer_status. Changed facts needan explicitly requesteda newintent; expiredexplicitorintent;revisedexpired/revised offersrequireneed current review.
Use after get_service_optionsto calculate anforanonymousa price previewforwith complete ride facts in theproviderreturnedtimeZone.timeZone;Nono contact is needed.Resolve missing return or hourlyReturnfactstripsbeforeneedquoting.returnDate/returnTime.TheHourlycalculatedAtservicepreviewneedsrequiresserviceType=hourly,revalidation;tripType=one_waynoandprice-validityhours. RevalidatewindowtheiscalculatedAtguaranteed.preview. For rate_limited waitretryAfterSeconds. For review_requiredretryAfterSeconds; followthe returned guidance; itreview_requireddoesguidancenotwithoutproveinferring vehicle unavailability. CreatesNono offer, reservation, charge ormessage is created.message.CallUse prepare_offer only for an explicit offer request.
⟨5 unchanged words⟩ ,"properties":{"locale":{"default":"deen","description":"ResponseUse the customer's requested language for text and booking links:deen(German,by default),ordeenfor(English).German. Preserve it on retries; pickup times stay in the provider time zone.","enum":["de","en"],"type":"string"},"offerKey":{"description":"Optional existing published provider offer key. Selects its configured service location; not booking authority.","pattern":"^[a-z0-9][a-z0-9_-]{0,79}$","type":"string"}},"type":"object"}
Use tocheck progress orreadthe result ofonepreviously requestedexistingofferrequest with its original submissionId/resumeToken pair,includingwithinpending,theprepared,originalexpired24-hour window. Returns offer state or recorded booking/payment/fulfillment afterpayment. Openpayment;customerPortalUrlnoforpricingexistingcallSamuelzorIDnewloginbusinessandaction.privateForown-bookingpending,view.waitThisretryAfterSecondsisandoneretryoriginalthatsubmission,pair.neverForaccountambiguous/conflicthistory,inspectathatnewintent;quote,not_foundcancellationdeniesoraccessmodification.andUseunavailablequote_rideisfornotavehiclepriceevidence.orOpenprepare_offercustomerPortalUrl foran explicitly requested newprivateoffer.login. Nobusinesslocaleor(originalproviderlanguage),requesthistory,iscancellationcreated.or modification.
⟨5 unchanged words⟩ ,"properties":{"resumeToken":{"description":"Client-generatedPrivate 64-character hexadecimal secret generated for this submission.Keep private;ReusereuseitstheoriginalexactpairsubmissionId/tokenwithpairsubmissionId for retries andstatus.status;Notneveransubstitute accountor booking-history credential.credentials.","pattern":"^[a-f0-9]{64}$","type":"string"},"submissionId":{"description":"Client-generatedIdentifies one offer intent. Generate a
⟨7 unchanged words⟩ scope, required ride facts and local timeZone. Read current published facts; do not assume additional locations. Language defaults to English; pass locale=de for German, without changing timeZone. It gives no price or availability confirmation. Use ⟨16 unchanged words⟩
⟨5 unchanged words⟩ ,"properties":{"locale":{"default":"deen","description":"ResponseUse the customer's requested language for text and booking links:deen(German,by default),ordeenfor(English).German. Preserve it on retries; pickup times stay in the provider time zone.","enum":["de","en"],"type":"string"},"offerKey":{"description":"Optional existing published provider offer key. Selects its configured service location; not booking authority.","pattern":"^[a-z0-9][a-z0-9_-]{0,79}$","type":"string"}},"type":"object"}
⟨44 unchanged words⟩ :"string"},"type":"array"},"location":{"additionalProperties":false,"properties":{"countryCode":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"}},"required":["key","countryCode","label"],"type":"object"},"nextAction":{"type":"string"},"provider" ⟨66 unchanged words⟩
Use onlyafter theforcustomeranexplicitlyexplicitrequestsofferanrequestofferwith(offerRequested=true),withcomplete ride facts and email OR E.164 phone. Creates one unpaid draft and an offerlinklink;withthe customer reviews boundterms;termsitanddoesconfirmsnotvia checkoutUrl. No charge orconfirmbookingaconfirmation.booking.UseForquote_ride for price-onlyquestionsquestions.useKeepquote_ride.submissionId,ReuseresumeTokentheandsameinputssubmissionId/resumeTokenunchangedforon retries;useinspect get_offer_statustoonreadambiguous/conflict.thatOnoffer.rate_limitedChangedwaitride/contactretryAfterSeconds.needsChangedafactsnewneedintent.anNeverexplicitlytreatrequestedannew intent; expired or revisedoffer as current; the customer must review terms andoffersconfirmrequireviacurrentcheckoutUrl.review.
⟨183 unchanged words⟩ :"string"},"locale":{"default":"deen","description":"ResponseUse the customer's requested language for text and booking links:deen(German,by default),ordeenfor(English).German. Preserve it on retries; pickup times stay in the provider time zone.","enum":["de","en"],"type":"string"},"offerKey":{"description":"Optional existing published provider offer key. Selects its configured service location; not booking authority.","pattern":"^[a-z0-9][a-z0-9_-]{0,79}$","type":"string"},"offerRequested":{"const":true,"description":"Must ⟨18 unchanged words⟩ :"boolean"},"resumeToken":{"description":"Client-generatedPrivate 64-character hexadecimal secret generated for this submission.
Useforafter get_service_options to calculate an anonymouscurrentprice previewoncefor complete ride factsareincomplete;theget_service_optionsprovidergivestimeZone.requiredNofactscontactandistimeZone.needed.DoResolvenotmissingincludereturncontactordetails.hourlyNofactsoffer,beforereservation,quoting.message,ThechargecalculatedAtorpreviewavailabilityrequiresguaranteerevalidation; no price-validity window iscreated.guaranteed.IfFor rate_limited wait retryAfterSeconds. For review_required follow thecustomerreturnedexplicitlyguidance;requestsitandoesoffer,notuseproveprepare_offer;vehicleanunavailability.existingNo offer, reservation, charge or message isreadcreated.withCallget_offer_status.prepare_offer only for an explicit offer request.
⟨5 unchanged words⟩ ,"properties":{"locale":{"default":"deen","description":"ResponseUse the customer's requested language for text and booking links:deen(German,by default),ordeenfor(English).German. Preserve it on retries; pickup times stay in the provider time zone.","enum":["de","en"],"type":"string"},"offerKey":{"description":"Optional existing published provider offer key. Selects its configured service location; not booking authority.","pattern":"^[a-z0-9][a-z0-9_-]{0,79}$","type":"string"},"ride":{"additionalProperties":false,"description":"Complete rideRide factsforwithadistinct
⟨87 unchanged words⟩ "},{"additionalProperties":false,"properties":{"booking":{"additionalProperties":false,"properties":{"recordedStatus":{"maxLength":64,"minLength":1,"type":"string"}},"required":["recordedStatus"],"type":"object"},"bookingKey":{"maxLength":128,"minLength":1,"type":"string"},"bookingReference":{"minLength":1,"type":"string"},"customerPortalUrl":{"format":"uri","type":"string"},"fulfillment":{"additionalProperties":false,"properties":{"chauffeurAssignmentRecorded":{"type":"boolean"},"completionRecorded":{"type":"boolean"},"vehicleAssignmentRecorded":{"type":"boolean"}},"required":["chauffeurAssignmentRecorded","vehicleAssignmentRecorded","completionRecorded"],"type":"object"},"payment":{"additionalProperties":false,"properties":{"recordedStatus":{"maxLength":64,"minLength":1,"type":"string"}},"required":["recordedStatus"],"type":"object"},"status":{"const":"available","type":"string"}},"required":["status","bookingKey","bookingReference","booking","payment","fulfillment","customerPortalUrl"],"type":"object"},{"additionalProperties":false,"properties":{"bookingUrl":{"format":"uri","type":"string"},"message":{"type":"string"},"review":{"additionalProperties":false,"properties":{"availabilityConfirmed":{"const":false,"type":"boolean"},"code":{"enum":["additional_requirements_review","model_guarantee_review","address_review","service_scope_review","booking_window_review","route_review"],"type":"string"},"customerContactRequired":{"const":false,"type":"boolean"},"nextAction":{"const":"review_requirements","type":"string"}},"required":["code","customerContactRequired","availabilityConfirmed","nextAction"],"type":"object"},"status":{"const":"review_required","type":"string"}},"required":["status","bookingUrl","message","review"],"type":"object"},{"additionalProperties":false,"properties":{"status":{"const":"expired","type":"string"}},"required" ⟨7 unchanged words⟩ const":false,"type":"boolean"},"checkoutUrl":{"format":"uri","type":"string"},"customerPortalUrl":{"format":"uri","type":" ⟨62 unchanged words⟩
⟨589 unchanged words⟩ one_way","return"],"type":"string"},"vehiclePreference":{"description":"Volunteered vehicle preference only; no class, price or availability guarantee. Additional requirements may require review.","maxLength":240,"minLength":1,"type":"string"}},"required":["pickup","destination"," ⟨95 unchanged words⟩
⟨87 unchanged words⟩ "},{"additionalProperties":false,"properties":{"booking":{"additionalProperties":false,"properties":{"recordedStatus":{"maxLength":64,"minLength":1,"type":"string"}},"required":["recordedStatus"],"type":"object"},"bookingKey":{"maxLength":128,"minLength":1,"type":"string"},"bookingReference":{"minLength":1,"type":"string"},"customerPortalUrl":{"format":"uri","type":"string"},"fulfillment":{"additionalProperties":false,"properties":{"chauffeurAssignmentRecorded":{"type":"boolean"},"completionRecorded":{"type":"boolean"},"vehicleAssignmentRecorded":{"type":"boolean"}},"required":["chauffeurAssignmentRecorded","vehicleAssignmentRecorded","completionRecorded"],"type":"object"},"payment":{"additionalProperties":false,"properties":{"recordedStatus":{"maxLength":64,"minLength":1,"type":"string"}},"required":["recordedStatus"],"type":"object"},"status":{"const":"available","type":"string"}},"required":["status","bookingKey","bookingReference","booking","payment","fulfillment","customerPortalUrl"],"type":"object"},{"additionalProperties":false,"properties":{"bookingUrl":{"format":"uri","type":"string"},"message":{"type":"string"},"review":{"additionalProperties":false,"properties":{"availabilityConfirmed":{"const":false,"type":"boolean"},"code":{"enum":["additional_requirements_review","model_guarantee_review","address_review","service_scope_review","booking_window_review","route_review"],"type":"string"},"customerContactRequired":{"const":false,"type":"boolean"},"nextAction":{"const":"review_requirements","type":"string"}},"required":["code","customerContactRequired","availabilityConfirmed","nextAction"],"type":"object"},"status":{"const":"review_required","type":"string"}},"required":["status","bookingUrl","message","review"],"type":"object"},{"additionalProperties":false,"properties":{"status":{"const":"expired","type":"string"}},"required" ⟨7 unchanged words⟩ const":false,"type":"boolean"},"checkoutUrl":{"format":"uri","type":"string"},"customerPortalUrl":{"format":"uri","type":" ⟨62 unchanged words⟩
⟨354 unchanged words⟩ one_way","return"],"type":"string"},"vehiclePreference":{"description":"Volunteered vehicle preference only; no class, price or availability guarantee. Additional requirements may require review.","maxLength":240,"minLength":1,"type":"string"}},"required":["pickup","destination"," ⟨41 unchanged words⟩
⟨67 unchanged words⟩ ,"message":{"type":"string"},"review":{"additionalProperties":false,"properties":{"availabilityConfirmed":{"const":false,"type":"boolean"},"code":{"enum":["additional_requirements_review","model_guarantee_review","address_review","service_scope_review","booking_window_review","route_review"],"type":"string"},"customerContactRequired":{"const":false,"type":"boolean"},"nextAction":{"const":"review_requirements","type":"string"}},"required":["code","customerContactRequired","availabilityConfirmed","nextAction"],"type":"object"},"status":{"const":"review_required","type": ⟨127 unchanged words⟩
⟨6 unchanged words⟩ :{"locale":{"default":"de","description":"Response language: de (German, default) or en (English).","enum":["de","en"],"type" ⟨3 unchanged words⟩
ReadUse to check progress or read the result of onepreparedpreviously requested offerbywith itssubmissionIdoriginalandsubmissionId/resumeTokenresumeToken.pair,Noincludingquotepending, prepared or expired status. It is not booking history,paymenta new price quote,messagecancellation or modification. Use quote_ride for a price or prepare_offer for an explicitly requested new offer. No business or provider request is created.
⟨3 unchanged words⟩ additionalProperties":false,"properties":{"resumeToken":{"description":"Client-generated 64-character hexadecimal secret for this submission. Keep private; reuse the exact submissionId/token pair for retries and status. Not an account or booking-history credential.","pattern":"^[a-f0-9]{64}$","type":"string"},"submissionId":{"description":"Client-generated UUID identifying exactly one offer intent. Reuse unchanged with the same resumeToken for prepare retries and get_offer_status; changed ride/contact needs a new UUID.","format":"uuid","pattern":"^([ ⟨25 unchanged words⟩
⟨87 unchanged words⟩ "},{"additionalProperties":false,"properties":{"status":{"const":"expired","type":"string"}},"required":["status"],"type":"object"},{"additionalProperties":false,"properties":{"bookingConfirmed":{"const":false,"type":"boolean ⟨66 unchanged words⟩
ReadUse first to learn this provider'spublicservice scope, required ride facts and local timeZone. It gives no price or availability confirmation. Use get_customer_policy for bookinglink.rules, quote_ride for a price, or prepare_offer only after an explicit offer request.
⟨6 unchanged words⟩ :{"locale":{"default":"de","description":"Response language: de (German, default) or en (English).","enum":["de","en"],"type" ⟨3 unchanged words⟩
⟨38 unchanged words⟩ ":"uri","type":"string"},"hourlyRideFacts":{"items":{"type":"string"},"type":"array"},"nextAction":{"type":"string"},"provider" ⟨56 unchanged words⟩ ","bookingUrl","services","requiredRideFacts","returnRideFacts","hourlyRideFacts","nextAction"],"type":"object"}] ⟨2 unchanged words⟩
Prepareaanbindingunpaid chauffeur offer
PrepareUseexactlyonly after the customer explicitly requests an offer (offerRequested=true), with complete ride facts and email OR E.164 phone. Creates one unpaidreservationdraft andbindingan offerforlinkanwithauthorizedboundtransfer,terms;returnittransferdoes not charge orhourlyconfirmservice.aRequiresbooking.realForcustomerprice-onlycontactquestionsdatauseandquote_ride.aReuseclient-generatedthesubmissionIdsameandsubmissionId/resumeTokenresumeToken.forApprovedretries;distributionusepartnersget_offer_statusmaytoaddreadtheirthatopaqueoffer.capabilityChangedforride/contacttenant-boundneedsattribution.aThenewcustomerintent.mustNeverreviewtreattheancompleteexpiredboundortermsrevisedandofferconfirmasoncurrent;checkoutUrl;thethiscustomerdoesmustnotreviewchargetermsorand confirmtheviabooking.checkoutUrl.
⟨5 unchanged words⟩ properties":{"contact":{"additionalProperties":false,"description":"Customer/booker contact for this explicitly requested offer: email OR E.164 phone is required. Contact does not authorize private booking/history access.","properties":{"email":{"description":"Reachable customer/booker email, at most 254 characters; required if no phone is supplied.","format":"email","maxLength":254,"pattern" ⟨14 unchanged words⟩ ,"type":"string"},"fullName":{"description":"Optional customer/booker full name, 2–120 characters.","maxLength":120,"minLength":2,"type":"string"},"phone":{"description":"Reachable international E.164 phone, + followed by 7–15 digits, no spaces; required if no email is supplied.","pattern":"^\\+[1-9][0-9]{6,14} ⟨3 unchanged words⟩ ,"type":"object"},"distributionPartnerCapability":{"description":"Optional existing opaque dp_live_ capability issued to an approved distribution partner. Omit for normal customers; do not create or guess one.","pattern":"^dp_live_[a-f0-9]{64}$","type":"string"},"firstTouchTrackingToken":{"description":"Optional existing server-issued first-touch UUID token for this tenant and consented attribution. Omit if none; never invent a token or source.","pattern":"^[0-9a-f]{8}-[0-9a-f]{ ⟨14 unchanged words⟩ },"locale":{"default":"de","description":"Response language: de (German, default) or en (English).","enum":["de","en"],"type":"string"},"offerRequested":{"const":true,"description":"Must be true only after the customer explicitly requests an offer; a price question alone is insufficient consent.","type":"boolean"},"resumeToken":{"description":"Client-generated 64-character hexadecimal secret for this submission. Keep private; reuse the exact submissionId/token pair for retries and status. Not an account or booking-history credential.","
⟨87 unchanged words⟩ "},{"additionalProperties":false,"properties":{"status":{"const":"expired","type":"string"}},"required":["status"],"type":"object"},{"additionalProperties":false,"properties":{"bookingConfirmed":{"const":false,"type":"boolean ⟨66 unchanged words⟩
GetUseafor an anonymous current price previewfor completeonce ride facts,usingarelocalcomplete;serviceget_service_optionstimegives required facts andaddressestimeZone.withDocitynotorincludepostcode.contactNodetails.availabilityNoguaranteeoffer,bookingreservation,chargemessage,messagecharge orreservation.availabilityDoguaranteenotisincludecreated. If the customercontactexplicitlydetails.requests an offer, use prepare_offer; an existing offer is read with get_offer_status.
⟨6 unchanged words⟩ :{"locale":{"default":"de","description":"Response language: de (German, default) or en (English).","enum":["de","en"],"type":"string"},"ride":{"additionalProperties":false,"description":"Complete ride facts for a transfer, return transfer or hourly service. Distinct pickup/destination and valid local dates/times are required.","properties":{"date":{"description":"Service date as YYYY-MM-DD in the provider timeZone returned by get_service_options; resolve relative dates first.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"destination":{"description":"Destination distinct from pickup, with city/municipality or postcode; e.g. München Hauptbahnhof, 80335 München. For hourly service describe the planned route or As directed.","maxLength":240,"minLength":2,"type":"string"},"flightNumber":{"description":"Optional flight number for the airport ride, such as LH123; at most 240 characters.","maxLength":240,"minLength":1,"type":"string"},"hours":{"description":"Booked hourly-service duration, integer 1–24 hours; required with serviceType=hourly and forbidden for transfers.","maximum":24,"minimum":1,"type":"integer"},"luggage":{"description":"Optional luggage count/type or fit requirements, at most 240 characters; unusual luggage may require review.","maxLength":240,"minLength":1,"type":"string"},"passengers":{"description":"Total passenger count, integer 1–60; vehicle requirements and acceptance are evaluated separately.","maximum":60,"minimum":1,"type":"integer"},"pickup":{"description":"Pickup address or named place with city/municipality or postcode; e.g. Flughafen München (MUC), 85356 München-Flughafen.","maxLength":240,"minLength":2,"type":"string"},"returnDate":{"description":"Return service date YYYY-MM-DD; required only when tripType=return. The return must follow the outbound pickup.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"returnTime":{"