from abc import ABC, abstractmethod


class ReportSerializable(ABC):
    """Base interface for objects that can be serialized into report content."""

    @abstractmethod
    def build_content(self) -> dict:
        """Serializes the object into a dict suitable for report payload.

        Returns:
            Dict representation of this element.
        """
        raise NotImplementedError()
