use crate::*;
use serde_with::{serde_as, OneOrMany};
pub type MovieSeriesEndDateFieldEnum = String;
pub type MovieSeriesStartDateFieldEnum = String;
pub type MovieSeriesDateModifiedFieldEnum = String;
pub type MovieSeriesEncodingFormatFieldEnum = String;
pub type MovieSeriesEditEIDRFieldEnum = String;
pub type MovieSeriesDatePublishedFieldEnum = String;
pub type MovieSeriesTemporalFieldEnum = String;
pub type MovieSeriesDateCreatedFieldEnum = String;
pub type MovieSeriesFileFormatFieldEnum = String;
pub type MovieSeriesExpiresFieldEnum = String;
pub type MovieSeriesTemporalCoverageFieldEnum = String;
pub type MovieSeriesSchemaVersionFieldEnum = String;
pub type MovieSeriesGenreFieldEnum = String;
pub type MovieSeriesAdditionalTypeFieldEnum = String;
#[serde_as]
#[derive(Debug, serde::Deserialize)]
#[cfg_attr(feature = "uniffi", derive(uniffi::Record))]
pub struct MovieSeries {
#[serde(rename = "@context")]
pub context: String,
#[serde(rename = "actors")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub actors: Vec<Person>,
#[serde(rename = "trailer")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub trailer: Vec<VideoObject>,
#[serde(rename = "musicBy")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub music_by: Vec<MovieSeriesMusicByFieldEnum>,
#[serde(rename = "actor")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub actor: Vec<MovieSeriesActorFieldEnum>,
#[serde(rename = "directors")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub directors: Vec<Person>,
#[serde(rename = "productionCompany")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub production_company: Vec<Organization>,
#[serde(rename = "director")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub director: Vec<Person>,
#[serde(rename = "endDate")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub end_date: Vec<MovieSeriesEndDateFieldEnum>,
#[serde(rename = "startDate")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub start_date: Vec<MovieSeriesStartDateFieldEnum>,
#[serde(rename = "issn")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub issn: Vec<String>,
#[serde(rename = "provider")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub provider: Vec<MovieSeriesProviderFieldEnum>,
#[serde(rename = "aggregateRating")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub aggregate_rating: Vec<AggregateRating>,
#[serde(rename = "citation")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub citation: Vec<MovieSeriesCitationFieldEnum>,
#[serde(rename = "locationCreated")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub location_created: Vec<Place>,
#[serde(rename = "sdPublisher")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub sd_publisher: Vec<MovieSeriesSdPublisherFieldEnum>,
#[serde(rename = "thumbnail")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub thumbnail: Vec<ImageObject>,
#[serde(rename = "accessModeSufficient")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub access_mode_sufficient: Vec<ItemList>,
#[serde(rename = "publishingPrinciples")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub publishing_principles: Vec<MovieSeriesPublishingPrinciplesFieldEnum>,
#[serde(rename = "inLanguage")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub in_language: Vec<MovieSeriesInLanguageFieldEnum>,
#[serde(rename = "abstract")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub _abstract: Vec<String>,
#[serde(rename = "countryOfOrigin")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub country_of_origin: Vec<Country>,
#[serde(rename = "contentLocation")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub content_location: Vec<Place>,
#[serde(rename = "dateModified")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub date_modified: Vec<MovieSeriesDateModifiedFieldEnum>,
#[serde(rename = "usageInfo")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub usage_info: Vec<MovieSeriesUsageInfoFieldEnum>,
#[serde(rename = "sdDatePublished")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub sd_date_published: Vec<String>,
#[serde(rename = "archivedAt")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub archived_at: Vec<MovieSeriesArchivedAtFieldEnum>,
#[serde(rename = "workTranslation")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub work_translation: Vec<CreativeWork>,
#[serde(rename = "sdLicense")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub sd_license: Vec<MovieSeriesSdLicenseFieldEnum>,
#[serde(rename = "educationalAlignment")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub educational_alignment: Vec<AlignmentObject>,
#[serde(rename = "editor")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub editor: Vec<Person>,
#[serde(rename = "license")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub license: Vec<MovieSeriesLicenseFieldEnum>,
#[serde(rename = "maintainer")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub maintainer: Vec<MovieSeriesMaintainerFieldEnum>,
#[serde(rename = "sourceOrganization")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub source_organization: Vec<Organization>,
#[serde(rename = "reviews")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub reviews: Vec<Review>,
#[serde(rename = "accessibilityHazard")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub accessibility_hazard: Vec<String>,
#[serde(rename = "workExample")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub work_example: Vec<CreativeWork>,
#[serde(rename = "pattern")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub pattern: Vec<MovieSeriesPatternFieldEnum>,
#[serde(rename = "offers")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub offers: Vec<MovieSeriesOffersFieldEnum>,
#[serde(rename = "hasPart")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub has_part: Vec<CreativeWork>,
#[serde(rename = "keywords")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub keywords: Vec<MovieSeriesKeywordsFieldEnum>,
#[serde(rename = "exampleOfWork")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub example_of_work: Vec<CreativeWork>,
#[serde(rename = "copyrightNotice")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub copyright_notice: Vec<String>,
#[serde(rename = "encodingFormat")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub encoding_format: Vec<MovieSeriesEncodingFormatFieldEnum>,
#[serde(rename = "mainEntity")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub main_entity: Vec<Thing>,
#[serde(rename = "editEIDR")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub edit_eidr: Vec<MovieSeriesEditEIDRFieldEnum>,
#[serde(rename = "copyrightYear")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub copyright_year: Vec<f32>,
#[serde(rename = "about")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub about: Vec<Thing>,
#[serde(rename = "datePublished")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub date_published: Vec<MovieSeriesDatePublishedFieldEnum>,
#[serde(rename = "educationalLevel")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub educational_level: Vec<MovieSeriesEducationalLevelFieldEnum>,
#[serde(rename = "accessibilityFeature")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub accessibility_feature: Vec<String>,
#[serde(rename = "materialExtent")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub material_extent: Vec<MovieSeriesMaterialExtentFieldEnum>,
#[serde(rename = "video")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub video: Vec<MovieSeriesVideoFieldEnum>,
#[serde(rename = "funding")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub funding: Vec<Grant>,
#[serde(rename = "headline")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub headline: Vec<String>,
#[serde(rename = "digitalSourceType")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub digital_source_type: Vec<IPTCDigitalSourceEnumerationEnum>,
#[serde(rename = "learningResourceType")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub learning_resource_type: Vec<MovieSeriesLearningResourceTypeFieldEnum>,
#[serde(rename = "alternativeHeadline")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub alternative_headline: Vec<String>,
#[serde(rename = "temporal")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub temporal: Vec<MovieSeriesTemporalFieldEnum>,
#[serde(rename = "isBasedOnUrl")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub is_based_on_url: Vec<MovieSeriesIsBasedOnUrlFieldEnum>,
#[serde(rename = "associatedMedia")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub associated_media: Vec<MediaObject>,
#[serde(rename = "commentCount")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub comment_count: Vec<i32>,
#[serde(rename = "dateCreated")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub date_created: Vec<MovieSeriesDateCreatedFieldEnum>,
#[serde(rename = "fileFormat")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub file_format: Vec<MovieSeriesFileFormatFieldEnum>,
#[serde(rename = "teaches")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub teaches: Vec<MovieSeriesTeachesFieldEnum>,
#[serde(rename = "accessibilityControl")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub accessibility_control: Vec<String>,
#[serde(rename = "isPartOf")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub is_part_of: Vec<MovieSeriesIsPartOfFieldEnum>,
#[serde(rename = "accessibilityAPI")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub accessibility_api: Vec<String>,
#[serde(rename = "contentReferenceTime")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub content_reference_time: Vec<String>,
#[serde(rename = "isBasedOn")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub is_based_on: Vec<MovieSeriesIsBasedOnFieldEnum>,
#[serde(rename = "creativeWorkStatus")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub creative_work_status: Vec<MovieSeriesCreativeWorkStatusFieldEnum>,
#[serde(rename = "award")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub award: Vec<String>,
#[serde(rename = "educationalUse")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub educational_use: Vec<MovieSeriesEducationalUseFieldEnum>,
#[serde(rename = "isFamilyFriendly")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub is_family_friendly: Vec<String>,
#[serde(rename = "interactivityType")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub interactivity_type: Vec<String>,
#[serde(rename = "publication")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub publication: Vec<PublicationEvent>,
#[serde(rename = "accountablePerson")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub accountable_person: Vec<Person>,
#[serde(rename = "version")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub version: Vec<MovieSeriesVersionFieldEnum>,
#[serde(rename = "expires")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub expires: Vec<MovieSeriesExpiresFieldEnum>,
#[serde(rename = "awards")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub awards: Vec<String>,
#[serde(rename = "text")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub text: Vec<String>,
#[serde(rename = "producer")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub producer: Vec<MovieSeriesProducerFieldEnum>,
#[serde(rename = "thumbnailUrl")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub thumbnail_url: Vec<String>,
#[serde(rename = "copyrightHolder")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub copyright_holder: Vec<MovieSeriesCopyrightHolderFieldEnum>,
#[serde(rename = "wordCount")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub word_count: Vec<i32>,
#[serde(rename = "recordedAt")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub recorded_at: Vec<Event>,
#[serde(rename = "audience")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub audience: Vec<Audience>,
#[serde(rename = "spatial")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub spatial: Vec<Place>,
#[serde(rename = "interpretedAsClaim")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub interpreted_as_claim: Vec<Claim>,
#[serde(rename = "creditText")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub credit_text: Vec<String>,
#[serde(rename = "material")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub material: Vec<MovieSeriesMaterialFieldEnum>,
#[serde(rename = "translator")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub translator: Vec<MovieSeriesTranslatorFieldEnum>,
#[serde(rename = "character")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub character: Vec<Person>,
#[serde(rename = "funder")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub funder: Vec<MovieSeriesFunderFieldEnum>,
#[serde(rename = "encodings")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub encodings: Vec<MediaObject>,
#[serde(rename = "contributor")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub contributor: Vec<MovieSeriesContributorFieldEnum>,
#[serde(rename = "position")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub position: Vec<MovieSeriesPositionFieldEnum>,
#[serde(rename = "conditionsOfAccess")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub conditions_of_access: Vec<String>,
#[serde(rename = "review")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub review: Vec<Review>,
#[serde(rename = "temporalCoverage")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub temporal_coverage: Vec<MovieSeriesTemporalCoverageFieldEnum>,
#[serde(rename = "mentions")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub mentions: Vec<Thing>,
#[serde(rename = "interactionStatistic")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub interaction_statistic: Vec<InteractionCounter>,
#[serde(rename = "schemaVersion")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub schema_version: Vec<MovieSeriesSchemaVersionFieldEnum>,
#[serde(rename = "acquireLicensePage")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub acquire_license_page: Vec<MovieSeriesAcquireLicensePageFieldEnum>,
#[serde(rename = "sponsor")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub sponsor: Vec<MovieSeriesSponsorFieldEnum>,
#[serde(rename = "publisher")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub publisher: Vec<MovieSeriesPublisherFieldEnum>,
#[serde(rename = "assesses")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub assesses: Vec<MovieSeriesAssessesFieldEnum>,
#[serde(rename = "spatialCoverage")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub spatial_coverage: Vec<Place>,
#[serde(rename = "size")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub size: Vec<MovieSeriesSizeFieldEnum>,
#[serde(rename = "contentRating")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub content_rating: Vec<MovieSeriesContentRatingFieldEnum>,
#[serde(rename = "accessMode")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub access_mode: Vec<String>,
#[serde(rename = "creator")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub creator: Vec<MovieSeriesCreatorFieldEnum>,
#[serde(rename = "releasedEvent")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub released_event: Vec<PublicationEvent>,
#[serde(rename = "accessibilitySummary")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub accessibility_summary: Vec<String>,
#[serde(rename = "translationOfWork")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub translation_of_work: Vec<CreativeWork>,
#[serde(rename = "publisherImprint")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub publisher_imprint: Vec<Organization>,
#[serde(rename = "typicalAgeRange")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub typical_age_range: Vec<String>,
#[serde(rename = "comment")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub comment: Vec<Comment>,
#[serde(rename = "encoding")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub encoding: Vec<MediaObject>,
#[serde(rename = "discussionUrl")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub discussion_url: Vec<String>,
#[serde(rename = "timeRequired")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub time_required: Vec<Duration>,
#[serde(rename = "isAccessibleForFree")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub is_accessible_for_free: Vec<String>,
#[serde(rename = "audio")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub audio: Vec<MovieSeriesAudioFieldEnum>,
#[serde(rename = "correction")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub correction: Vec<MovieSeriesCorrectionFieldEnum>,
#[serde(rename = "author")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub author: Vec<MovieSeriesAuthorFieldEnum>,
#[serde(rename = "genre")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub genre: Vec<MovieSeriesGenreFieldEnum>,
#[serde(rename = "name")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub name: Vec<String>,
#[serde(rename = "mainEntityOfPage")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub main_entity_of_page: Vec<MovieSeriesMainEntityOfPageFieldEnum>,
#[serde(rename = "url")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub url: Vec<String>,
#[serde(rename = "disambiguatingDescription")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub disambiguating_description: Vec<String>,
#[serde(rename = "identifier")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub identifier: Vec<MovieSeriesIdentifierFieldEnum>,
#[serde(rename = "description")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub description: Vec<MovieSeriesDescriptionFieldEnum>,
#[serde(rename = "subjectOf")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub subject_of: Vec<MovieSeriesSubjectOfFieldEnum>,
#[serde(rename = "alternateName")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub alternate_name: Vec<String>,
#[serde(rename = "additionalType")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub additional_type: Vec<MovieSeriesAdditionalTypeFieldEnum>,
#[serde(rename = "potentialAction")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub potential_action: Vec<Action>,
#[serde(rename = "sameAs")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub same_as: Vec<String>,
#[serde(rename = "image")]
#[serde_as(as = "OneOrMany<_>")]
#[serde(default)]
pub image: Vec<MovieSeriesImageFieldEnum>,
}