The point in having negotiable protocol modules would be: a simple protocol implementation just doesn't support many or any of these modules and is still capable of communicating with the rest of PSYCspace, in fact a few vars in a UDP packet can be sufficient to do a job. A full-fledged PSYC implementation would support all of these modules.

Nowadays we have had our share of experience with unnecessary negotiation protocols introducing latency and such, so we consider not negotiating modules over the network but rather to expect receiving nodes to support all important things from the start (at least syntactically/protocolwise) while peripheral nodes (clients, automations) know just as much as they need to do their job.

So for now consider the following list more like a way to structure the routing layer of PSYC rather than actually negotiable modules.

Modules of the routing layer