a matching engine configured to receive a request from a requesting learning application program via an application programming interface, the request being to perform matching of the plurality of users for multi-user interaction via a learning application program, the request including data indicating a multi-player game type selected from a plurality of different multi-player game types of the r