Persistent world states are similar to an Agent's state, in fact, they share the same base class.
The difference between them is the World States is the memory of the entire application or game.
This is generally used for major events, such as Level5Unlocked.
Adding and removing World States is almost exactly the same as an Agent, instead of referencing the Agent, you want to get the World States instance through the singleton below.
public class GameLevelController
{
public void OnLevelCompleted()
{
// Setting the state will also automatically add it.
World.SetState("Level, CurrentLevel);
}
}