Wiki:Hunt Leaderboards

As a wiki where one of our priorities is to preserve data about puzzle hunts, we keep a record of how teams did at previous hunts, where this information is publically accessible. We use the Cargo extension in order to only need one source of truth. This information can be further collated, allowing teams to list out their previous participations in hunts. This page details the structure and process in which this is done.

Structure
All of the data resides in the Data: namespace. For any hunt page, you can access the Data namespace by prepending Data: in front of it. We use two Cargo tables, Leaderboard and HuntData. Leaderboard is the large table which stores one row for each leaderboard entry in each hunt. HuntData is a small auxiliary table which is used to store additional information about each hunt, such as when the hunt ran and what franchise the hunt is from.

For display, there are two templates created. HuntLeaderboard allows for adding a leaderboard section to mainspace hunt pages. TeamPastPerformances allows for adding a list of previous hunts to team pages.

Adding a hunt
Go to the hunt's data page. This spreadsheet (make a copy) should be helpful in creating the LeaderboardRow's, assuming that the leaderboard is formatted in a nice table (most gph-site hunts should be). If the construction group does hunts together, also add the group with rank -1. Make sure that something like alias=| doesn't exist; the workflow that is preferable is to use the spreadsheet to populate everything but optional fields like alias and subteams, and then add optional fields manually in the wikieditor afterward.

HuntData, as of now, should be populated with start_date and franchise fields.

On the mainspace hunt page, the leaderboard section should be populated with a HuntLeaderboard template, which accepts headers specifying which columns to accept, as well as what the names of the columns should be. As a general rule of thumb, the max_teams default of 30 works well for most online hunts with at least ~150 teams participating; for hunts with fewer teams participating it may be better to reduce this limit (e.g. for earlier years of MIT Mystery Hunt, a limit of 10 or 20 may work better.)

Team aliases
For the purposes of aliasing, we want to try to minimize the amount of page edits needed (since every edit involves a Cargo table refresh). Aliasing should be case insensitive.

[URGENT] and [pi] (and any other teams with a bracket in their name) must be aliased to replace out brackets. (e.g. (URGENT), (pi)) This is due to a technical wiki restriction.

The team previously known as Setec Astronomy Total Landscaping in the 2022 MIT Mystery Hunt should be aliased to Alice Shrugged. After the conclusion of every MIT Mystery Hunt, Alice Shrugged should redirect to the new team name that this team is using.

Adding to team pages
Add the TeamPastPerformances template to the team page. Teams can: modify the max_ranks param to be more or less inclusive in terms of what performances are included, opt out of the rank column by adding the no_rank parameter, or opt out of the template entirely (if this is the case, please add a comment on the page itself indicating this, so others don't re-add this template).

In the future, splitting TeamPastPerformances by franchise will be possible.