from abc import ABC, abstractmethod
from typing import Any, Mapping
from pydantic import BaseModel
from .task import TaskRunner
[docs]
class Team(ABC, TaskRunner):
[docs]
    @abstractmethod
    async def reset(self) -> None:
        """Reset the team and all its participants to its initial state."""
        ... 
[docs]
    @abstractmethod
    async def save_state(self) -> Mapping[str, Any]:
        """Save the current state of the team."""
        ... 
[docs]
    @abstractmethod
    async def load_state(self, state: Mapping[str, Any]) -> None:
        """Load the state of the team."""
        ...