def METHOD_NAME(json_metadata):
    """
    It's more user-friendly to access metadata as a TypedDict, but for backwards compatibility,
    it's necessary to provide the metadata.json property. TypedDicts don't seem to support
    custom constructors or non-dictionary properties at all.
    As a compromise, cast to `MetadataDict` so that users with type checking can access it as a
    TypedDict, but the .json property is still available as the instance type is a regular dict.
    """
    return cast(Metadata, MetadataContainer(json_metadata))