CommandResult and CommandProtocol Typed