Signal isn't a protocol; it's a centralized service that wants you to use their official client only. The Signal Foundation gets weird and starts making trademark threats whenever someone makes moves towards interoperability (see e.g. https://github.com/LibreSignal/LibreSignal/issues/37#issueco...).