Problem to Solve
[This issue has been generalised based on Alex's message below]
The protocol spec includes definitions specific to Core and Cluster in one place. However, this exposes Cluster APIs on the Core server that could accidentally be implemented and additionally represents a domain leak. The Cluster protocol should be separate and extend the Core protocol in a separately released package.