A couple misc thoughts that we might want to do on the next breaking change:
Use better/larger unique numbers for all the different state fields, instead of sequential small numbers. Potentially pick a bunch of prime u32s instead.
"mark" endpoint (req, resp) and topic (message) types differently, so even at the same path we can't confuse topics and endpoints, e.g. hash(path) + hash("Endpoint") + hash(schema(request_type)) or hash(path) + hash("Topic") + hash(schema(message_type))
"mark" endpoint requests and responses separately, e.g. hash(path) + hash("Endpoint::Request") + hash(schema(request_type)), to also avoid request/response confusion on the same path
These are all "nice to haves", but might help avoid confusion, particularly when wiring up new transports, or accidental user mis-use. Since these are all at compile time, the minimal added cost is generally not relevant.
A couple misc thoughts that we might want to do on the next breaking change:
hash(path) + hash("Endpoint") + hash(schema(request_type))
orhash(path) + hash("Topic") + hash(schema(message_type))
hash(path) + hash("Endpoint::Request") + hash(schema(request_type))
, to also avoid request/response confusion on the same pathThese are all "nice to haves", but might help avoid confusion, particularly when wiring up new transports, or accidental user mis-use. Since these are all at compile time, the minimal added cost is generally not relevant.