Hmm... I think the most logical flow would be per kind, reusing the req/res kinds of each job type, so in this way you will request the input schema from a dvm using its 5xxx req kind and it will respond in its 6xxx, the request can contain a standardized method to request the input schema so clients will know how to request this schema on any dvm. This is also more private than creating a new kind just for req res input schema, since this will look like a normal operation.
And yes, the dvm can choose not to announce itself publicly, so no nip89, this is something I am also introducing for the revised dvmcp spec.
wdyt? Someone should draft this to potentially upgrade nip90