{"root":"rental.Root","rooted":true,"surfaceChecksum":"34bcaeeb348bcfccbabd2f967213395bdfc846453009779871c51d581db77fd6","starter":{"script":"namespace script\nimport rental.Root\n\nmain: query(root: Root) -\u003E Root {\n    #expand(2)\n    #annotate\n    let result = root\n    return result\n}\n","args":{},"queryOnly":true},"agentEndpoints":["/assist","/present"],"routes":["/compile","/script"],"channels":["return","stdout","stderr","script"],"agentSwitches":{"commands":{"available":["manual","auto"],"default":"manual"},"reads":{"available":["model","data"],"default":"model"}},"agentContext":true,"agentSessions":{"enabled":true,"idleSeconds":1800,"lifetimeSeconds":28800,"maxTurns":50},"presentation":{"default":"ascii","formats":["ascii","markdown","html"],"mediaTypes":{"ascii":"text/plain","markdown":"text/markdown","html":"text/html","*":"text/plain"},"model":true},"agentChannels":{"default":"result","available":["presentation","result","script","prose","description","record"]},"hostCapabilities":{"assist":true,"present":true,"components":true},"description":{"#def":{"#name":"Root","#fullName":"rental.Root","#declarationKind":"service","#info":{"name":"Rental","description":"Holiday houses on the Danish west coast: find one, book a stay, and run the rental.","labels":{"da":"Sommerhusudlejning"}},"find":{"#name":"find","#required":true,"#info":{"name":"Find a house","description":"Browse every published house, look one over, check its dates and see what a stay costs. No sign-in needed.","labels":{"da":"Find sommerhus"}},"#qualifiers":{"info":{"name":"Find a house","description":"Browse every published house, look one over, check its dates and see what a stay costs. No sign-in needed."}},"#fullName":"rental.Find","#declarationKind":"service","houses":[{"#name":"houses","#actionKind":"query","#input":{"city":{"#name":"city","#required":false,"#hasDefault":true,"#members":{"City@":{"#staged":{"#name":"City","#fullName":"rental.domain.City","#declarationKind":"entity","#info":{"name":"City","description":"A town or resort the rental has houses in.","labels":{"da":"By"}},"#identity":{"system":{"fields":["id"]},"primary":{"fields":["id"]},"keys":[]}}},"none":{"#name":"none"}},"#info":{"name":"City","description":null,"labels":{"da":"By"}}},"sleeps":{"#name":"sleeps","#required":false,"#hasDefault":true,"#members":{"int":{"#name":"int"},"none":{"#name":"none"}},"#info":{"name":"Sleeps at least","description":null,"labels":{"da":"Mindst antal gæster"}}}},"#output":{"#members":{"List<Listing>":{"#template":{"#fullName":"kvaseer.List"},"#typeArguments":{"T":{"#name":"Listing","#fullName":"rental.domain.Listing","#declarationKind":"type","#info":{"name":"Listing","description":"A published house as guests see it: its city, its size, what a night costs from, and its cover photo.","labels":{"da":"Sommerhus"}}}}},"error":{"#name":"error"}}},"#info":{"name":"Houses","description":"Every published house with its city, size, price from and cover photo, ordered by title. Both filters are optional; leave them empty to see every house.","labels":{"da":"Sommerhuse"}},"#qualifiers":{"info":{"name":"Houses","description":"Every published house with its city, size, price from and cover photo, ordered by title. Both filters are optional; leave them empty to see every house."}}}],"around":[{"#name":"around","#actionKind":"query","#input":{"address":{"#name":"address","#required":true,"#fullName":"rental.domain.PostalAddress","#declarationKind":"type","#info":{"name":"Address","description":null,"labels":{"da":"Adresse"}}}},"#output":{"#members":{"List<Listing>":{"#template":{"#fullName":"kvaseer.List"},"#typeArguments":{"T":{"#fullName":"rental.domain.Listing"}}},"error":{"#name":"error"}}},"#info":{"name":"Houses around an address","description":"The published houses in the city with the address's postcode. Leave the postcode empty to match the town by name instead.","labels":{"da":"Sommerhuse ved en adresse"}},"#qualifiers":{"info":{"name":"Houses around an address","description":"The published houses in the city with the address's postcode. Leave the postcode empty to match the town by name instead."}}}],"details":[{"#name":"details","#actionKind":"query","#input":{"house":{"#name":"house","#required":true,"#staged":{"#name":"House","#fullName":"rental.domain.House","#declarationKind":"entity","#info":{"name":"House","description":"A holiday house to let. Guests see it once it is published; its owner and staff see it from the start.","labels":{"da":"Sommerhus"}},"#identity":{"system":{"fields":["id"]},"primary":{"fields":["id"]},"keys":[]}},"#info":{"name":"House","description":null,"labels":{"da":"Hus"}}}},"#output":{"#members":{"Listing":{"#fullName":"rental.domain.Listing"},"error":{"#name":"error"}}},"#info":{"name":"House details","description":"One house as the list shows it, read fresh from the store. A house that is not published is shown only to its owner and staff.","labels":{"da":"Husdetaljer"}},"#qualifiers":{"info":{"name":"House details","description":"One house as the list shows it, read fresh from the store. A house that is not published is shown only to its owner and staff."}}}],"photos":[{"#name":"photos","#actionKind":"query","#input":{"house":{"#name":"house","#required":true,"#staged":{"#fullName":"rental.domain.House"},"#info":{"name":"House","description":null,"labels":{"da":"Hus"}}}},"#output":{"#members":{"List<GalleryPhoto>":{"#template":{"#fullName":"kvaseer.List"},"#typeArguments":{"T":{"#name":"GalleryPhoto","#fullName":"rental.domain.GalleryPhoto","#declarationKind":"type","#info":{"name":"Gallery photo","description":null,"labels":{"da":"Galleribillede"}}}}},"error":{"#name":"error"}}},"#info":{"name":"Photos","description":"The house's photos in the order they are shown; the first is the cover.","labels":{"da":"Billeder"}},"#qualifiers":{"info":{"name":"Photos","description":"The house's photos in the order they are shown; the first is the cover."}}}],"isAvailable":[{"#name":"isAvailable","#actionKind":"query","#input":{"house":{"#name":"house","#required":true,"#staged":{"#fullName":"rental.domain.House"},"#info":{"name":"House","description":null,"labels":{"da":"Hus"}}},"checkIn":{"#name":"checkIn","#required":true,"#fullName":"kvaseer.dateOnly","#info":{"name":"Check-in","description":null,"labels":{"da":"Ankomst"}}},"checkOut":{"#name":"checkOut","#required":true,"#fullName":"kvaseer.dateOnly","#info":{"name":"Check-out","description":null,"labels":{"da":"Afrejse"}}}},"#output":{"#members":{"bool":{"#name":"bool"},"error":{"#name":"error"}}},"#info":{"name":"Is it free?","description":"True when nothing blocks the house from check-in up to check-out. Check-out is the departure day, so a stay can start the day another ends.","labels":{"da":"Er huset ledigt?"}},"#qualifiers":{"info":{"name":"Is it free?","description":"True when nothing blocks the house from check-in up to check-out. Check-out is the departure day, so a stay can start the day another ends."}}}],"quote":[{"#name":"quote","#actionKind":"query","#input":{"house":{"#name":"house","#required":true,"#staged":{"#fullName":"rental.domain.House"},"#info":{"name":"House","description":null,"labels":{"da":"Hus"}}},"checkIn":{"#name":"checkIn","#required":true,"#fullName":"kvaseer.dateOnly","#info":{"name":"Check-in","description":null,"labels":{"da":"Ankomst"}}},"checkOut":{"#name":"checkOut","#required":true,"#fullName":"kvaseer.dateOnly","#info":{"name":"Check-out","description":null,"labels":{"da":"Afrejse"}}},"guests":{"#name":"guests","#required":true,"#fullName":"kvaseer.int","#info":{"name":"Guests","description":null,"labels":{"da":"Antal gæster"}}}},"#output":{"#members":{"PriceQuote":{"#name":"PriceQuote","#fullName":"rental.domain.PriceQuote","#declarationKind":"type","#info":{"name":"Price","description":"What a stay costs, line by line, with VAT.","labels":{"da":"Pris"}}},"error":{"#name":"error"}}},"#info":{"name":"Price a stay","description":"What a stay costs: nightly rates by season, cleaning, extra guests and VAT.","labels":{"da":"Beregn pris"}},"#qualifiers":{"info":{"name":"Price a stay","description":"What a stay costs: nightly rates by season, cleaning, extra guests and VAT."}}}],"reset":[{"#name":"reset","#actionKind":"command","#input":{},"#output":{"#name":"none"},"#intrinsic":true}],"#constructors":[{"#input":{},"#output":{"#fullName":"rental.Find"},"#constructorKind":"fieldShape","#canFail":false,"#isSynthesized":true}]},"account":{"#name":"account","#required":true,"#info":{"name":"Account","description":"Signing in and out, and creating an account. Open to everyone.","labels":{"da":"Konto"}},"#qualifiers":{"info":{"name":"Account","description":"Signing in and out, and creating an account. Open to everyone."}},"#fullName":"rental.Account","#declarationKind":"service","setup":[{"#name":"setup","#actionKind":"command","#input":{"email":{"#name":"email","#required":true,"#fullName":"kvaseer.text","#info":{"name":"Email","description":null,"labels":{"da":"E-mail"}}},"firstName":{"#name":"firstName","#required":false,"#hasDefault":true,"#members":{"text":{"#name":"text"},"none":{"#name":"none"}},"#info":{"name":"First name","description":null,"labels":{"da":"Fornavn"}}},"lastName":{"#name":"lastName","#required":true,"#fullName":"kvaseer.text","#info":{"name":"Last name","description":null,"labels":{"da":"Efternavn"}}},"password":{"#name":"password","#required":true,"#fullName":"kvaseer.text","#info":{"name":"Password","description":null,"labels":{"da":"Adgangskode"}}}},"#output":{"#members":{"text":{"#name":"text"},"error":{"#name":"error"}}},"#info":{"name":"Set up the first account","description":"Creates the very first account and makes it staff. It works only while there are no accounts at all; the demo's seed uses it once.","labels":{"da":"Opret den første konto"}},"#qualifiers":{"info":{"name":"Set up the first account","description":"Creates the very first account and makes it staff. It works only while there are no accounts at all; the demo's seed uses it once."}}}],"register":[{"#name":"register","#actionKind":"command","#input":{"email":{"#name":"email","#required":true,"#fullName":"kvaseer.text","#info":{"name":"Email","description":null,"labels":{"da":"E-mail"}}},"firstName":{"#name":"firstName","#required":false,"#hasDefault":true,"#members":{"text":{"#name":"text"},"none":{"#name":"none"}},"#info":{"name":"First name","description":null,"labels":{"da":"Fornavn"}}},"lastName":{"#name":"lastName","#required":true,"#fullName":"kvaseer.text","#info":{"name":"Last name","description":null,"labels":{"da":"Efternavn"}}},"password":{"#name":"password","#required":true,"#fullName":"kvaseer.text","#info":{"name":"Password","description":null,"labels":{"da":"Adgangskode"}}}},"#output":{"#members":{"text":{"#name":"text"},"error":{"#name":"error"}}},"#info":{"name":"Create an account","description":"Creates a guest account you can book houses with. Sign in with it afterwards.","labels":{"da":"Opret konto"}},"#qualifiers":{"info":{"name":"Create an account","description":"Creates a guest account you can book houses with. Sign in with it afterwards."}}}],"login":[{"#name":"login","#actionKind":"command","#input":{"email":{"#name":"email","#required":true,"#fullName":"kvaseer.text","#info":{"name":"Email","description":null,"labels":{"da":"E-mail"}}},"password":{"#name":"password","#required":true,"#fullName":"kvaseer.text","#info":{"name":"Password","description":null,"labels":{"da":"Adgangskode"}}}},"#output":{"#members":{"text":{"#name":"text"},"error":{"#name":"error"}}},"#info":{"name":"Sign in","description":"Signs in with your email and password. Five wrong passwords lock the account for 15 minutes.","labels":{"da":"Log ind"}},"#qualifiers":{"info":{"name":"Sign in","description":"Signs in with your email and password. Five wrong passwords lock the account for 15 minutes."}}}],"logout":[{"#name":"logout","#actionKind":"command","#input":{},"#output":{"#members":{"text":{"#name":"text"},"error":{"#name":"error"}}},"#info":{"name":"Sign out","description":null,"labels":{"da":"Log ud"}},"#qualifiers":{"info":{"name":"Sign out"}}}],"reset":[{"#name":"reset","#actionKind":"command","#input":{},"#output":{"#name":"none"},"#intrinsic":true}],"#constructors":[{"#input":{},"#output":{"#fullName":"rental.Account"},"#constructorKind":"fieldShape","#canFail":false,"#isSynthesized":true}]},"reset":[{"#name":"reset","#actionKind":"command","#input":{},"#output":{"#name":"none"},"#intrinsic":true}],"#qualifiers":{"info":{"name":"Rental","description":"Holiday houses on the Danish west coast: find one, book a stay, and run the rental."}},"#constructors":[{"#input":{},"#output":{"#fullName":"rental.Root"},"#constructorKind":"fieldShape","#canFail":false,"#isSynthesized":true},{"#input":{"source":{"#name":"source","#required":true,"#fullName":"rental.Root"}},"#output":{"#fullName":"rental.Root"},"#constructorKind":"copy","#canFail":false,"#isSynthesized":true}]},"find":{},"account":{}}}