In TrueSkill Through Time, the player skills change each year, and they are coupled between consecutive years. So you need to have a separate PlayerSkills array for every year, and repeat the whole model (performances, etc.) for each year,
then link the years. The trickiest bit is linking the years. Each player has a year where they first started playing. In that year, their skill comes from the prior, otherwise their skill is drawn from a Gaussian around the previous year's
skill. Since this differs for each player, you have to use a Variable.If statement to branch on whether this is the first year for a player, and generate their skill value appropriately. So the code becomes something like this:
Variable<bool> isFirstYear = (firstYear[player] >= year);
using (Variable.If(isFirstYear)) {
skillInYear[year][player] = Variable<double>.Random(skillPrior);
}
using (Variable.IfNot(isFirstYear)) {
skillInYear[year][player] = Variable.GaussianFromMeanAndPrecision(skillInYear[year-1][player], skillChangePrecision);
}