/-  spider, docket
/+  strandio
=,  strand=strand:spider
^-  thread:spider
|=  arg=vase
=/  m  (strand ,vase)
^-  form:m
=+  !<([~ ref=glob-reference:docket base=term] arg)
|^
?-  -.location.ref
  %http  (fetch-http [url.location hash]:ref)
  %ames  (fetch-ames [ship.location hash]:ref base)
==
::
++  fetch-http
  |=  [url=cord hash=@uvH]
  ^-  form:m
  ;<  =glob:docket  bind:m
    %+  (retry:strandio ,glob:docket)  `5
    =/  n  (strand ,(unit glob:docket))
    ;<  =cord  bind:n  (fetch-cord:strandio (trip url))
    %-  pure:n
    %-  mole
    |.
    ;;(=glob:docket (cue cord))
  (pure:m !>(glob))
::
::  download from ship's docket state
++  fetch-ames
  |=  [[=ship hash=@uvH] base=term]
  ^-  form:m
  ;<  =bowl:spider  bind:m  get-bowl:strandio
  ;<  =cage  bind:m
    (watch-one:strandio /glob/(scot %da now.bowl) [ship %docket] /glob/[base]/(scot %uv hash))
  ?>  ?=(%glob-0 p.cage)
  (pure:m q.cage)
--