# Constants

SanctionTypeBan is the type ban, where a player cannot rejoin a server for a specific time.
SanctionTypeMute is the mute of a player that is not allowed to chat for a specific period of time.
SanctionTypeTrollPit is the sanction where a player is moved to a different chat space where they cannot interact with normal players anymore via the chat, Imagine a pit of trolls only being able to talk to other trolls in their same pit while other players can talk to them from above, but cannot hear what the trolls are saying.
SanctionTypeVoteBan is the sanction of a player not being allowed to start either spec- or kick-votes.

# Variables

ErrIDNotFound is returned by functions that are passed an ID, but that ID cannot be found be it the player in the server state of some IP in an ID to mapping.

# Structs

Player is the object that represents a player with all of their information.
SanctionEntry is an entry of any type of potential sanction.
ServerState is a representation of the current server state This dto can be sent every time something happens to the server state.

# Type aliases

ByExpirationTime allows to sort a list of sanctions by their expiration time in order to have a correct representation.
PlayersSortByID sort a list of player by their ID.
A SanctionMap maps a specific sanction type to a sorted list list of sanctions.