# Path: rest_framework_json_schema/exceptions.py
# class TypeConflict(Exception):
#     """
#     The type passed to this resource object is incorrect.
# 
#     https://jsonapi.org/format/#crud-creating-responses-409
#     """
# 
# class IncludeInvalid(Exception):
#     """
#     The relationship cannot be included.
# 
#     https://jsonapi.org/format/#fetching-includes
#     """
# 
# Path: rest_framework_json_schema/transforms.py
# class NullTransform(Transform):
#     """A transform that doesn't do anything."""
# 
#     def transform(self, name: str) -> str:
#         """Do nothing."""
#         return name
# 
# class Transform(ABC):
#     """Provide the base interface for transforms."""
# 
#     @abstractmethod
#     def transform(self, name: str) -> str:
#         """Return the transformed name."""
#         ...


from collections import OrderedDict
from typing import (
    Any,
    Optional,
    Dict,
    Sequence,
    Tuple,
    List,
    Callable,
    Union,
    Type,
    cast,
    Iterator,
    overload,
)
from django.urls import reverse
from rest_framework.request import Request
from .exceptions import TypeConflict, IncludeInvalid
from .transforms import NullTransform, Transform

        return OrderedDict(
            (link_name, link_obj.render(data, context.request))
            for (link_name, link_obj) in self.links
        )

    def render_meta(self, data: Any, context: Context) -> Optional[Dict]:
        """
        Render metadata.

        Implement this in your subclass if you have more complex meta information
        that depends on data or the request.
        """
        return self.meta


class ResourceObject(BaseLinkedObject):
    """
    Implement the base document resource object.

    http://jsonapi.org/format/#document-resource-objects
    """

    # REQUIRED members
    id: str = "id"
    type: str = "unknown"

    # OPTIONAL members
    attributes: Sequence[str] = ()
    relationships: Sequence[RelOptType] = ()

# Path: rest_framework_json_schema/exceptions.py
# class TypeConflict(Exception):
#     """
#     The type passed to this resource object is incorrect.
# 
#     https://jsonapi.org/format/#crud-creating-responses-409
#     """
# 
# class IncludeInvalid(Exception):
#     """
#     The relationship cannot be included.
# 
#     https://jsonapi.org/format/#fetching-includes
#     """
# 
# Path: rest_framework_json_schema/transforms.py
# class NullTransform(Transform):
#     """A transform that doesn't do anything."""
# 
#     def transform(self, name: str) -> str:
#         """Do nothing."""
#         return name
# 
# class Transform(ABC):
#     """Provide the base interface for transforms."""
# 
#     @abstractmethod
#     def transform(self, name: str) -> str:
#         """Return the transformed name."""
#         ...


# Path: rest_framework_json_schema/schema.py
from collections import OrderedDict
from typing import (
    Any,
    Optional,
    Dict,
    Sequence,
    Tuple,
    List,
    Callable,
    Union,
    Type,
    cast,
    Iterator,
    overload,
)
from django.urls import reverse
from rest_framework.request import Request
from .exceptions import TypeConflict, IncludeInvalid
from .transforms import NullTransform, Transform


        return OrderedDict(
            (link_name, link_obj.render(data, context.request))
            for (link_name, link_obj) in self.links
        )

    def render_meta(self, data: Any, context: Context) -> Optional[Dict]:
        """
        Render metadata.

        Implement this in your subclass if you have more complex meta information
        that depends on data or the request.
        """
        return self.meta


class ResourceObject(BaseLinkedObject):
    """
    Implement the base document resource object.

    http://jsonapi.org/format/#document-resource-objects
    """

    # REQUIRED members
    id: str = "id"
    type: str = "unknown"

    # OPTIONAL members
    attributes: Sequence[str] = ()
    relationships: Sequence[RelOptType] = ()

    transformer: Type[Transform] = NullTransform