It would be beneficial to have a function in the DiscreteSpaceDF (and AgentContainer) for moving agents based on attributes:
move_to(agents: AgentLike, attr_names: str | list[str], rank_order: ['max' | 'min'] | list['max' | 'min'])
For example: move_to('sugar', 'max'). This would abstract the code for handling sequential conflicts, making it easier than handling them from scratch each time.