pub fn spec<R: RoleT>() -> ProtoSpec<State, Message, R>where State: ProtocolState<R, WireMsg = Message>,