I’m pretty sure we can create shareable Nostr service definitions something like this - as Nostr events. Some parts definitely need decisions made to make them flexible. And perhaps even input validation rules.
# Nostr Service Definition Specs
provider_name
provider_website
Paid?
file-upload
* Service type: file-upload
* Service name: "cdn.wako.ws file uploads"
* Auth methods: NOSTR-NIP-98
* endpoint, POST, JSON = https://cdn.wako.ws/upload
* Inputs
* file (multi-part)
* Accepted file (content-)types - [MIME] = image/jpeg,image/png
* Multiple files accepted: bool = true
* max request body size bytes =
* Response
* Success = parsing/field/key (json.dot.walk filter) = .file_url
* Error = .message
translation
* Auth method: API_KEY
* endpoint, POST, JSON = https://translate.nokyctranslate.com/translate
* Inputs
* q (text)
* source (ISO 639-1)
* target (ISO 639-1)
* api_key (text, .api_key)
* max request body size bytes
* Response
* Success = parsing/field/key = .translatedText | .translations[0].text (.join(" ")
* Error = .message