Arena_lib is very useful for making minigames (I have made/helped make 5 minigames so far)
It provides well-documented callbacks to run and handle your minigame, as well as nice extras such as spectate mode, an arena editor GUI, background music handler, and more.
It is based on the idea of punching a sign to enter a queue for the minigame. The sign displays information about the arena (number of players, arena status, etc) and rightclicking it gives more into and a menu to enter spectate.
Arenas are physically just a collection of positions that the players will be teleported to when the game starts.
its up to the arena maker to make an inescapable arena, and make the arena have the features that it should for the minigame.
There are per-arena variables (properties) that can be set in the arena editor. That can let you do things like clear the board, or reset it, (by storing positions) or set arena specific variables to initialize that arena.
the arena editor is also expandable per minigame mod.