p.Say("there are flowers around you. you are standing in a slight depression and before you is grass touching a purple sky.")
p.Pause()
p.Say("you are not sure how long it's been when a cube about a meter high appears at the top of the hill before you.")
p.Say("the cube's surface is murky but iridescently reflective like an oil slick.")
p.Pause()
p.CharSay("cube","hello. how is your day going?")
p.Say("(you can type a response and hit enter to talk to the cube)")
p.Pause()
howDay:=InputAnswer{}
err:=p.Ask("you say:",&howDay)
iferr!=nil{
returnerr
}
a.howDay=howDay.Value
p.Say("the cube inclines towards you gently as if nodding.")
p.CharSay("cube","i see.")
p.Pause()
p.CharSay("cube","i am guessing that if you are here, you want to be there.")
p.Pause()
p.Say("you blink and are somewhere else.")
p.Pause()
p.Say("the field of flowers is behind you and now you are up on the hill. the cube is next to you.")
p.Pause()
p.Say("you can see clear across a wide open plain. structures large and small dot the landscape. you catch a whiff of a savory smell and can just barely hear voices on the wind.")
p.Pause()
p.CharSay("cube","the tilde town lies before us. if you want to continue, i'll ask you some questions about acquiring a home down in the town. you'll be free to edit your responses before i carry them off.")
p.Pause()
p.CharSay("cube","first, i'm curious how you found out about the town?")
p.Pause()
answer:=InputAnswer{}
iferr:=p.Ask("you say:",&answer);err!=nil{
returnerr
}
a.howHeard=answer.Value
p.CharSay("cube","interesting, thanks.")
p.CharSay("cube","what sort of stuff do you want to get up to on the town?")
iferr:=p.Ask("you say:",&answer);err!=nil{
returnerr
}
a.plans=answer.Value
p.CharSay("cube","thanks.")
p.CharSay("cube","what do you like about the town?")
iferr:=p.Ask("you say:",&answer);err!=nil{
returnerr
}
a.reasons=answer.Value
p.CharSay("cube","i appreciate it.")
p.CharSay("cube","can you paste some links to other places you are active online? maybe a homepage or social media profile? if you aren't comfortable sharing or there are none, just say so.")
iferr:=p.Ask("you say:",&answer);err!=nil{
returnerr
}
a.socials=answer.Value
p.CharSay("cube","ok, last thing. in order to break ground in the town, you'll need an SSH key. If you don't know what that is, you can check out this link: https://tilde.town/ssh.html .")
p.Pause()
iferr:=p.AskLong("paste SSH public key; press control+d to submit:",&answer);err!=nil{
returnerr
}
a.sshKey=answer.Value
p.CharSay("cube","i know that was a lot so i appreciate it. i've got everything written down here. before i carry it off, do you want to review and edit what you wrote?")