One caveat: in my snippet above I declare some capabilities (catalog, discover, and state) which may not be actually supported. I'm still new to singer taps and still trying identify what each capability means and how to know if they are supported. (I'm now pretty sure now that "discover" is not supported, for instance.)