StudySystemProtocol DEFINITIONS EXPLICIT TAGS ::= BEGIN ActivityType ::= ENUMERATED { reading(0), exercises(1) } Session ::= SEQUENCE { subject UTF8String, type ActivityType, timestamp INTEGER, minutes INTEGER } RequestBody ::= CHOICE { ping [0] NULL, listActivities [1] NULL, logSession [2] Session } Request ::= SEQUENCE { transactionId INTEGER, body RequestBody } Activity ::= SEQUENCE { subject UTF8String, type ActivityType, priority INTEGER } Error ::= ENUMERATED { invalidRequest(0), invalidArguments(1), serverError(2) } ResponseBody ::= CHOICE { error [0] Error, ack [1] NULL, activities [2] SEQUENCE OF Activity } Response ::= SEQUENCE { transactionId INTEGER, body ResponseBody } END