schema_org_types/schemas/classes/
video_game_series.rs

1use super::*;
2/// <https://schema.org/VideoGameSeries>
3#[cfg_attr(feature = "derive-debug", derive(Debug))]
4#[cfg_attr(feature = "derive-clone", derive(Clone))]
5pub struct VideoGameSeries {
6	/// <https://schema.org/actor>
7	pub r#actor: Vec<ActorProperty>,
8	/// <https://schema.org/actors>
9	#[deprecated = "This schema is superseded by <https://schema.org/actor>."]
10	pub r#actors: Vec<ActorsProperty>,
11	/// <https://schema.org/characterAttribute>
12	pub r#character_attribute: Vec<CharacterAttributeProperty>,
13	/// <https://schema.org/cheatCode>
14	pub r#cheat_code: Vec<CheatCodeProperty>,
15	/// <https://schema.org/containsSeason>
16	pub r#contains_season: Vec<ContainsSeasonProperty>,
17	/// <https://schema.org/director>
18	pub r#director: Vec<DirectorProperty>,
19	/// <https://schema.org/directors>
20	#[deprecated = "This schema is superseded by <https://schema.org/director>."]
21	pub r#directors: Vec<DirectorsProperty>,
22	/// <https://schema.org/episode>
23	pub r#episode: Vec<EpisodeProperty>,
24	/// <https://schema.org/episodes>
25	#[deprecated = "This schema is superseded by <https://schema.org/episode>."]
26	pub r#episodes: Vec<EpisodesProperty>,
27	/// <https://schema.org/gameItem>
28	pub r#game_item: Vec<GameItemProperty>,
29	/// <https://schema.org/gameLocation>
30	pub r#game_location: Vec<GameLocationProperty>,
31	/// <https://schema.org/gamePlatform>
32	pub r#game_platform: Vec<GamePlatformProperty>,
33	/// <https://schema.org/musicBy>
34	pub r#music_by: Vec<MusicByProperty>,
35	/// <https://schema.org/numberOfEpisodes>
36	pub r#number_of_episodes: Vec<NumberOfEpisodesProperty>,
37	/// <https://schema.org/numberOfPlayers>
38	pub r#number_of_players: Vec<NumberOfPlayersProperty>,
39	/// <https://schema.org/numberOfSeasons>
40	pub r#number_of_seasons: Vec<NumberOfSeasonsProperty>,
41	/// <https://schema.org/playMode>
42	pub r#play_mode: Vec<PlayModeProperty>,
43	/// <https://schema.org/productionCompany>
44	pub r#production_company: Vec<ProductionCompanyProperty>,
45	/// <https://schema.org/quest>
46	pub r#quest: Vec<QuestProperty>,
47	/// <https://schema.org/season>
48	#[deprecated = "This schema is superseded by <https://schema.org/containsSeason>."]
49	pub r#season: Vec<SeasonProperty>,
50	/// <https://schema.org/seasons>
51	#[deprecated = "This schema is superseded by <https://schema.org/season>."]
52	pub r#seasons: Vec<SeasonsProperty>,
53	/// <https://schema.org/trailer>
54	pub r#trailer: Vec<TrailerProperty>,
55	/// <https://schema.org/about>
56	pub r#about: Vec<AboutProperty>,
57	/// <https://schema.org/abstract>
58	pub r#abstract: Vec<AbstractProperty>,
59	/// <https://schema.org/accessMode>
60	pub r#access_mode: Vec<AccessModeProperty>,
61	/// <https://schema.org/accessModeSufficient>
62	pub r#access_mode_sufficient: Vec<AccessModeSufficientProperty>,
63	/// <https://schema.org/accessibilityAPI>
64	pub r#accessibility_api: Vec<AccessibilityApiProperty>,
65	/// <https://schema.org/accessibilityControl>
66	pub r#accessibility_control: Vec<AccessibilityControlProperty>,
67	/// <https://schema.org/accessibilityFeature>
68	pub r#accessibility_feature: Vec<AccessibilityFeatureProperty>,
69	/// <https://schema.org/accessibilityHazard>
70	pub r#accessibility_hazard: Vec<AccessibilityHazardProperty>,
71	/// <https://schema.org/accessibilitySummary>
72	pub r#accessibility_summary: Vec<AccessibilitySummaryProperty>,
73	/// <https://schema.org/accountablePerson>
74	pub r#accountable_person: Vec<AccountablePersonProperty>,
75	/// <https://schema.org/acquireLicensePage>
76	pub r#acquire_license_page: Vec<AcquireLicensePageProperty>,
77	/// <https://schema.org/aggregateRating>
78	pub r#aggregate_rating: Vec<AggregateRatingProperty>,
79	/// <https://schema.org/alternativeHeadline>
80	pub r#alternative_headline: Vec<AlternativeHeadlineProperty>,
81	/// <https://schema.org/archivedAt>
82	pub r#archived_at: Vec<ArchivedAtProperty>,
83	/// <https://schema.org/assesses>
84	pub r#assesses: Vec<AssessesProperty>,
85	/// <https://schema.org/associatedMedia>
86	pub r#associated_media: Vec<AssociatedMediaProperty>,
87	/// <https://schema.org/audience>
88	pub r#audience: Vec<AudienceProperty>,
89	/// <https://schema.org/audio>
90	pub r#audio: Vec<AudioProperty>,
91	/// <https://schema.org/author>
92	pub r#author: Vec<AuthorProperty>,
93	/// <https://schema.org/award>
94	pub r#award: Vec<AwardProperty>,
95	/// <https://schema.org/awards>
96	#[deprecated = "This schema is superseded by <https://schema.org/award>."]
97	pub r#awards: Vec<AwardsProperty>,
98	/// <https://schema.org/character>
99	pub r#character: Vec<CharacterProperty>,
100	/// <https://schema.org/citation>
101	pub r#citation: Vec<CitationProperty>,
102	/// <https://schema.org/comment>
103	pub r#comment: Vec<CommentProperty>,
104	/// <https://schema.org/commentCount>
105	pub r#comment_count: Vec<CommentCountProperty>,
106	/// <https://schema.org/conditionsOfAccess>
107	pub r#conditions_of_access: Vec<ConditionsOfAccessProperty>,
108	/// <https://schema.org/contentLocation>
109	pub r#content_location: Vec<ContentLocationProperty>,
110	/// <https://schema.org/contentRating>
111	pub r#content_rating: Vec<ContentRatingProperty>,
112	/// <https://schema.org/contentReferenceTime>
113	pub r#content_reference_time: Vec<ContentReferenceTimeProperty>,
114	/// <https://schema.org/contributor>
115	pub r#contributor: Vec<ContributorProperty>,
116	/// <https://schema.org/copyrightHolder>
117	pub r#copyright_holder: Vec<CopyrightHolderProperty>,
118	/// <https://schema.org/copyrightNotice>
119	pub r#copyright_notice: Vec<CopyrightNoticeProperty>,
120	/// <https://schema.org/copyrightYear>
121	pub r#copyright_year: Vec<CopyrightYearProperty>,
122	/// <https://schema.org/correction>
123	pub r#correction: Vec<CorrectionProperty>,
124	/// <https://schema.org/countryOfOrigin>
125	pub r#country_of_origin: Vec<CountryOfOriginProperty>,
126	/// <https://schema.org/creativeWorkStatus>
127	pub r#creative_work_status: Vec<CreativeWorkStatusProperty>,
128	/// <https://schema.org/creator>
129	pub r#creator: Vec<CreatorProperty>,
130	/// <https://schema.org/creditText>
131	pub r#credit_text: Vec<CreditTextProperty>,
132	/// <https://schema.org/dateCreated>
133	pub r#date_created: Vec<DateCreatedProperty>,
134	/// <https://schema.org/dateModified>
135	pub r#date_modified: Vec<DateModifiedProperty>,
136	/// <https://schema.org/datePublished>
137	pub r#date_published: Vec<DatePublishedProperty>,
138	/// <https://schema.org/discussionUrl>
139	pub r#discussion_url: Vec<DiscussionUrlProperty>,
140	/// <https://schema.org/editEIDR>
141	pub r#edit_eidr: Vec<EditEidrProperty>,
142	/// <https://schema.org/editor>
143	pub r#editor: Vec<EditorProperty>,
144	/// <https://schema.org/educationalAlignment>
145	pub r#educational_alignment: Vec<EducationalAlignmentProperty>,
146	/// <https://schema.org/educationalLevel>
147	pub r#educational_level: Vec<EducationalLevelProperty>,
148	/// <https://schema.org/educationalUse>
149	pub r#educational_use: Vec<EducationalUseProperty>,
150	/// <https://schema.org/encoding>
151	pub r#encoding: Vec<EncodingProperty>,
152	/// <https://schema.org/encodingFormat>
153	pub r#encoding_format: Vec<EncodingFormatProperty>,
154	/// <https://schema.org/encodings>
155	#[deprecated = "This schema is superseded by <https://schema.org/encoding>."]
156	pub r#encodings: Vec<EncodingsProperty>,
157	/// <https://schema.org/exampleOfWork>
158	pub r#example_of_work: Vec<ExampleOfWorkProperty>,
159	/// <https://schema.org/expires>
160	pub r#expires: Vec<ExpiresProperty>,
161	/// <https://schema.org/fileFormat>
162	#[deprecated = "This schema is superseded by <https://schema.org/encodingFormat>."]
163	pub r#file_format: Vec<FileFormatProperty>,
164	/// <https://schema.org/funder>
165	pub r#funder: Vec<FunderProperty>,
166	/// <https://schema.org/funding>
167	pub r#funding: Vec<FundingProperty>,
168	/// <https://schema.org/genre>
169	pub r#genre: Vec<GenreProperty>,
170	/// <https://schema.org/hasPart>
171	pub r#has_part: Vec<HasPartProperty>,
172	/// <https://schema.org/headline>
173	pub r#headline: Vec<HeadlineProperty>,
174	/// <https://schema.org/inLanguage>
175	pub r#in_language: Vec<InLanguageProperty>,
176	/// <https://schema.org/interactionStatistic>
177	pub r#interaction_statistic: Vec<InteractionStatisticProperty>,
178	/// <https://schema.org/interactivityType>
179	pub r#interactivity_type: Vec<InteractivityTypeProperty>,
180	/// <https://schema.org/interpretedAsClaim>
181	pub r#interpreted_as_claim: Vec<InterpretedAsClaimProperty>,
182	/// <https://schema.org/isAccessibleForFree>
183	pub r#is_accessible_for_free: Vec<IsAccessibleForFreeProperty>,
184	/// <https://schema.org/isBasedOn>
185	pub r#is_based_on: Vec<IsBasedOnProperty>,
186	/// <https://schema.org/isBasedOnUrl>
187	#[deprecated = "This schema is superseded by <https://schema.org/isBasedOn>."]
188	pub r#is_based_on_url: Vec<IsBasedOnUrlProperty>,
189	/// <https://schema.org/isFamilyFriendly>
190	pub r#is_family_friendly: Vec<IsFamilyFriendlyProperty>,
191	/// <https://schema.org/isPartOf>
192	pub r#is_part_of: Vec<IsPartOfProperty>,
193	/// <https://schema.org/keywords>
194	pub r#keywords: Vec<KeywordsProperty>,
195	/// <https://schema.org/learningResourceType>
196	pub r#learning_resource_type: Vec<LearningResourceTypeProperty>,
197	/// <https://schema.org/license>
198	pub r#license: Vec<LicenseProperty>,
199	/// <https://schema.org/locationCreated>
200	pub r#location_created: Vec<LocationCreatedProperty>,
201	/// <https://schema.org/mainEntity>
202	pub r#main_entity: Vec<MainEntityProperty>,
203	/// <https://schema.org/maintainer>
204	pub r#maintainer: Vec<MaintainerProperty>,
205	/// <https://schema.org/material>
206	pub r#material: Vec<MaterialProperty>,
207	/// <https://schema.org/materialExtent>
208	pub r#material_extent: Vec<MaterialExtentProperty>,
209	/// <https://schema.org/mentions>
210	pub r#mentions: Vec<MentionsProperty>,
211	/// <https://schema.org/offers>
212	pub r#offers: Vec<OffersProperty>,
213	/// <https://schema.org/pattern>
214	pub r#pattern: Vec<PatternProperty>,
215	/// <https://schema.org/position>
216	pub r#position: Vec<PositionProperty>,
217	/// <https://schema.org/producer>
218	pub r#producer: Vec<ProducerProperty>,
219	/// <https://schema.org/provider>
220	pub r#provider: Vec<ProviderProperty>,
221	/// <https://schema.org/publication>
222	pub r#publication: Vec<PublicationProperty>,
223	/// <https://schema.org/publisher>
224	pub r#publisher: Vec<PublisherProperty>,
225	/// <https://schema.org/publisherImprint>
226	pub r#publisher_imprint: Vec<PublisherImprintProperty>,
227	/// <https://schema.org/publishingPrinciples>
228	pub r#publishing_principles: Vec<PublishingPrinciplesProperty>,
229	/// <https://schema.org/recordedAt>
230	pub r#recorded_at: Vec<RecordedAtProperty>,
231	/// <https://schema.org/releasedEvent>
232	pub r#released_event: Vec<ReleasedEventProperty>,
233	/// <https://schema.org/review>
234	pub r#review: Vec<ReviewProperty>,
235	/// <https://schema.org/reviews>
236	#[deprecated = "This schema is superseded by <https://schema.org/review>."]
237	pub r#reviews: Vec<ReviewsProperty>,
238	/// <https://schema.org/schemaVersion>
239	pub r#schema_version: Vec<SchemaVersionProperty>,
240	/// <https://schema.org/sdDatePublished>
241	pub r#sd_date_published: Vec<SdDatePublishedProperty>,
242	/// <https://schema.org/sdLicense>
243	pub r#sd_license: Vec<SdLicenseProperty>,
244	/// <https://schema.org/sdPublisher>
245	pub r#sd_publisher: Vec<SdPublisherProperty>,
246	/// <https://schema.org/size>
247	pub r#size: Vec<SizeProperty>,
248	/// <https://schema.org/sourceOrganization>
249	pub r#source_organization: Vec<SourceOrganizationProperty>,
250	/// <https://schema.org/spatial>
251	pub r#spatial: Vec<SpatialProperty>,
252	/// <https://schema.org/spatialCoverage>
253	pub r#spatial_coverage: Vec<SpatialCoverageProperty>,
254	/// <https://schema.org/sponsor>
255	pub r#sponsor: Vec<SponsorProperty>,
256	/// <https://schema.org/teaches>
257	pub r#teaches: Vec<TeachesProperty>,
258	/// <https://schema.org/temporal>
259	pub r#temporal: Vec<TemporalProperty>,
260	/// <https://schema.org/temporalCoverage>
261	pub r#temporal_coverage: Vec<TemporalCoverageProperty>,
262	/// <https://schema.org/text>
263	pub r#text: Vec<TextProperty>,
264	/// <https://schema.org/thumbnail>
265	pub r#thumbnail: Vec<ThumbnailProperty>,
266	/// <https://schema.org/thumbnailUrl>
267	pub r#thumbnail_url: Vec<ThumbnailUrlProperty>,
268	/// <https://schema.org/timeRequired>
269	pub r#time_required: Vec<TimeRequiredProperty>,
270	/// <https://schema.org/translationOfWork>
271	pub r#translation_of_work: Vec<TranslationOfWorkProperty>,
272	/// <https://schema.org/translator>
273	pub r#translator: Vec<TranslatorProperty>,
274	/// <https://schema.org/typicalAgeRange>
275	pub r#typical_age_range: Vec<TypicalAgeRangeProperty>,
276	/// <https://schema.org/usageInfo>
277	pub r#usage_info: Vec<UsageInfoProperty>,
278	/// <https://schema.org/version>
279	pub r#version: Vec<VersionProperty>,
280	/// <https://schema.org/video>
281	pub r#video: Vec<VideoProperty>,
282	/// <https://schema.org/workExample>
283	pub r#work_example: Vec<WorkExampleProperty>,
284	/// <https://schema.org/workTranslation>
285	pub r#work_translation: Vec<WorkTranslationProperty>,
286	/// <https://schema.org/endDate>
287	pub r#end_date: Vec<EndDateProperty>,
288	/// <https://schema.org/issn>
289	pub r#issn: Vec<IssnProperty>,
290	/// <https://schema.org/startDate>
291	pub r#start_date: Vec<StartDateProperty>,
292	/// <https://schema.org/additionalType>
293	pub r#additional_type: Vec<AdditionalTypeProperty>,
294	/// <https://schema.org/alternateName>
295	pub r#alternate_name: Vec<AlternateNameProperty>,
296	/// <https://schema.org/description>
297	pub r#description: Vec<DescriptionProperty>,
298	/// <https://schema.org/disambiguatingDescription>
299	pub r#disambiguating_description: Vec<DisambiguatingDescriptionProperty>,
300	/// <https://schema.org/identifier>
301	pub r#identifier: Vec<IdentifierProperty>,
302	/// <https://schema.org/image>
303	pub r#image: Vec<ImageProperty>,
304	/// <https://schema.org/mainEntityOfPage>
305	pub r#main_entity_of_page: Vec<MainEntityOfPageProperty>,
306	/// <https://schema.org/name>
307	pub r#name: Vec<NameProperty>,
308	/// <https://schema.org/potentialAction>
309	pub r#potential_action: Vec<PotentialActionProperty>,
310	/// <https://schema.org/sameAs>
311	pub r#same_as: Vec<SameAsProperty>,
312	/// <https://schema.org/subjectOf>
313	pub r#subject_of: Vec<SubjectOfProperty>,
314	/// <https://schema.org/url>
315	pub r#url: Vec<UrlProperty>,
316}
317/// This trait is for properties from <https://schema.org/VideoGameSeries>.
318pub trait VideoGameSeriesTrait {
319	/// Get <https://schema.org/actor> from [`Self`] as borrowed slice.
320	fn get_actor(&self) -> &[ActorProperty];
321	/// Take <https://schema.org/actor> from [`Self`] as owned vector.
322	fn take_actor(&mut self) -> Vec<ActorProperty>;
323	/// Get <https://schema.org/actors> from [`Self`] as borrowed slice.
324	#[deprecated = "This schema is superseded by <https://schema.org/actor>."]
325	fn get_actors(&self) -> &[ActorsProperty];
326	/// Take <https://schema.org/actors> from [`Self`] as owned vector.
327	#[deprecated = "This schema is superseded by <https://schema.org/actor>."]
328	fn take_actors(&mut self) -> Vec<ActorsProperty>;
329	/// Get <https://schema.org/characterAttribute> from [`Self`] as borrowed slice.
330	fn get_character_attribute(&self) -> &[CharacterAttributeProperty];
331	/// Take <https://schema.org/characterAttribute> from [`Self`] as owned vector.
332	fn take_character_attribute(&mut self) -> Vec<CharacterAttributeProperty>;
333	/// Get <https://schema.org/cheatCode> from [`Self`] as borrowed slice.
334	fn get_cheat_code(&self) -> &[CheatCodeProperty];
335	/// Take <https://schema.org/cheatCode> from [`Self`] as owned vector.
336	fn take_cheat_code(&mut self) -> Vec<CheatCodeProperty>;
337	/// Get <https://schema.org/containsSeason> from [`Self`] as borrowed slice.
338	fn get_contains_season(&self) -> &[ContainsSeasonProperty];
339	/// Take <https://schema.org/containsSeason> from [`Self`] as owned vector.
340	fn take_contains_season(&mut self) -> Vec<ContainsSeasonProperty>;
341	/// Get <https://schema.org/director> from [`Self`] as borrowed slice.
342	fn get_director(&self) -> &[DirectorProperty];
343	/// Take <https://schema.org/director> from [`Self`] as owned vector.
344	fn take_director(&mut self) -> Vec<DirectorProperty>;
345	/// Get <https://schema.org/directors> from [`Self`] as borrowed slice.
346	#[deprecated = "This schema is superseded by <https://schema.org/director>."]
347	fn get_directors(&self) -> &[DirectorsProperty];
348	/// Take <https://schema.org/directors> from [`Self`] as owned vector.
349	#[deprecated = "This schema is superseded by <https://schema.org/director>."]
350	fn take_directors(&mut self) -> Vec<DirectorsProperty>;
351	/// Get <https://schema.org/episode> from [`Self`] as borrowed slice.
352	fn get_episode(&self) -> &[EpisodeProperty];
353	/// Take <https://schema.org/episode> from [`Self`] as owned vector.
354	fn take_episode(&mut self) -> Vec<EpisodeProperty>;
355	/// Get <https://schema.org/episodes> from [`Self`] as borrowed slice.
356	#[deprecated = "This schema is superseded by <https://schema.org/episode>."]
357	fn get_episodes(&self) -> &[EpisodesProperty];
358	/// Take <https://schema.org/episodes> from [`Self`] as owned vector.
359	#[deprecated = "This schema is superseded by <https://schema.org/episode>."]
360	fn take_episodes(&mut self) -> Vec<EpisodesProperty>;
361	/// Get <https://schema.org/gameItem> from [`Self`] as borrowed slice.
362	fn get_game_item(&self) -> &[GameItemProperty];
363	/// Take <https://schema.org/gameItem> from [`Self`] as owned vector.
364	fn take_game_item(&mut self) -> Vec<GameItemProperty>;
365	/// Get <https://schema.org/gameLocation> from [`Self`] as borrowed slice.
366	fn get_game_location(&self) -> &[GameLocationProperty];
367	/// Take <https://schema.org/gameLocation> from [`Self`] as owned vector.
368	fn take_game_location(&mut self) -> Vec<GameLocationProperty>;
369	/// Get <https://schema.org/gamePlatform> from [`Self`] as borrowed slice.
370	fn get_game_platform(&self) -> &[GamePlatformProperty];
371	/// Take <https://schema.org/gamePlatform> from [`Self`] as owned vector.
372	fn take_game_platform(&mut self) -> Vec<GamePlatformProperty>;
373	/// Get <https://schema.org/musicBy> from [`Self`] as borrowed slice.
374	fn get_music_by(&self) -> &[MusicByProperty];
375	/// Take <https://schema.org/musicBy> from [`Self`] as owned vector.
376	fn take_music_by(&mut self) -> Vec<MusicByProperty>;
377	/// Get <https://schema.org/numberOfEpisodes> from [`Self`] as borrowed slice.
378	fn get_number_of_episodes(&self) -> &[NumberOfEpisodesProperty];
379	/// Take <https://schema.org/numberOfEpisodes> from [`Self`] as owned vector.
380	fn take_number_of_episodes(&mut self) -> Vec<NumberOfEpisodesProperty>;
381	/// Get <https://schema.org/numberOfPlayers> from [`Self`] as borrowed slice.
382	fn get_number_of_players(&self) -> &[NumberOfPlayersProperty];
383	/// Take <https://schema.org/numberOfPlayers> from [`Self`] as owned vector.
384	fn take_number_of_players(&mut self) -> Vec<NumberOfPlayersProperty>;
385	/// Get <https://schema.org/numberOfSeasons> from [`Self`] as borrowed slice.
386	fn get_number_of_seasons(&self) -> &[NumberOfSeasonsProperty];
387	/// Take <https://schema.org/numberOfSeasons> from [`Self`] as owned vector.
388	fn take_number_of_seasons(&mut self) -> Vec<NumberOfSeasonsProperty>;
389	/// Get <https://schema.org/playMode> from [`Self`] as borrowed slice.
390	fn get_play_mode(&self) -> &[PlayModeProperty];
391	/// Take <https://schema.org/playMode> from [`Self`] as owned vector.
392	fn take_play_mode(&mut self) -> Vec<PlayModeProperty>;
393	/// Get <https://schema.org/productionCompany> from [`Self`] as borrowed slice.
394	fn get_production_company(&self) -> &[ProductionCompanyProperty];
395	/// Take <https://schema.org/productionCompany> from [`Self`] as owned vector.
396	fn take_production_company(&mut self) -> Vec<ProductionCompanyProperty>;
397	/// Get <https://schema.org/quest> from [`Self`] as borrowed slice.
398	fn get_quest(&self) -> &[QuestProperty];
399	/// Take <https://schema.org/quest> from [`Self`] as owned vector.
400	fn take_quest(&mut self) -> Vec<QuestProperty>;
401	/// Get <https://schema.org/season> from [`Self`] as borrowed slice.
402	#[deprecated = "This schema is superseded by <https://schema.org/containsSeason>."]
403	fn get_season(&self) -> &[SeasonProperty];
404	/// Take <https://schema.org/season> from [`Self`] as owned vector.
405	#[deprecated = "This schema is superseded by <https://schema.org/containsSeason>."]
406	fn take_season(&mut self) -> Vec<SeasonProperty>;
407	/// Get <https://schema.org/seasons> from [`Self`] as borrowed slice.
408	#[deprecated = "This schema is superseded by <https://schema.org/season>."]
409	fn get_seasons(&self) -> &[SeasonsProperty];
410	/// Take <https://schema.org/seasons> from [`Self`] as owned vector.
411	#[deprecated = "This schema is superseded by <https://schema.org/season>."]
412	fn take_seasons(&mut self) -> Vec<SeasonsProperty>;
413	/// Get <https://schema.org/trailer> from [`Self`] as borrowed slice.
414	fn get_trailer(&self) -> &[TrailerProperty];
415	/// Take <https://schema.org/trailer> from [`Self`] as owned vector.
416	fn take_trailer(&mut self) -> Vec<TrailerProperty>;
417}
418impl VideoGameSeriesTrait for VideoGameSeries {
419	fn get_actor(&self) -> &[ActorProperty] {
420		self.r#actor.as_slice()
421	}
422	fn take_actor(&mut self) -> Vec<ActorProperty> {
423		std::mem::take(&mut self.r#actor)
424	}
425	fn get_actors(&self) -> &[ActorsProperty] {
426		self.r#actors.as_slice()
427	}
428	fn take_actors(&mut self) -> Vec<ActorsProperty> {
429		std::mem::take(&mut self.r#actors)
430	}
431	fn get_character_attribute(&self) -> &[CharacterAttributeProperty] {
432		self.r#character_attribute.as_slice()
433	}
434	fn take_character_attribute(&mut self) -> Vec<CharacterAttributeProperty> {
435		std::mem::take(&mut self.r#character_attribute)
436	}
437	fn get_cheat_code(&self) -> &[CheatCodeProperty] {
438		self.r#cheat_code.as_slice()
439	}
440	fn take_cheat_code(&mut self) -> Vec<CheatCodeProperty> {
441		std::mem::take(&mut self.r#cheat_code)
442	}
443	fn get_contains_season(&self) -> &[ContainsSeasonProperty] {
444		self.r#contains_season.as_slice()
445	}
446	fn take_contains_season(&mut self) -> Vec<ContainsSeasonProperty> {
447		std::mem::take(&mut self.r#contains_season)
448	}
449	fn get_director(&self) -> &[DirectorProperty] {
450		self.r#director.as_slice()
451	}
452	fn take_director(&mut self) -> Vec<DirectorProperty> {
453		std::mem::take(&mut self.r#director)
454	}
455	fn get_directors(&self) -> &[DirectorsProperty] {
456		self.r#directors.as_slice()
457	}
458	fn take_directors(&mut self) -> Vec<DirectorsProperty> {
459		std::mem::take(&mut self.r#directors)
460	}
461	fn get_episode(&self) -> &[EpisodeProperty] {
462		self.r#episode.as_slice()
463	}
464	fn take_episode(&mut self) -> Vec<EpisodeProperty> {
465		std::mem::take(&mut self.r#episode)
466	}
467	fn get_episodes(&self) -> &[EpisodesProperty] {
468		self.r#episodes.as_slice()
469	}
470	fn take_episodes(&mut self) -> Vec<EpisodesProperty> {
471		std::mem::take(&mut self.r#episodes)
472	}
473	fn get_game_item(&self) -> &[GameItemProperty] {
474		self.r#game_item.as_slice()
475	}
476	fn take_game_item(&mut self) -> Vec<GameItemProperty> {
477		std::mem::take(&mut self.r#game_item)
478	}
479	fn get_game_location(&self) -> &[GameLocationProperty] {
480		self.r#game_location.as_slice()
481	}
482	fn take_game_location(&mut self) -> Vec<GameLocationProperty> {
483		std::mem::take(&mut self.r#game_location)
484	}
485	fn get_game_platform(&self) -> &[GamePlatformProperty] {
486		self.r#game_platform.as_slice()
487	}
488	fn take_game_platform(&mut self) -> Vec<GamePlatformProperty> {
489		std::mem::take(&mut self.r#game_platform)
490	}
491	fn get_music_by(&self) -> &[MusicByProperty] {
492		self.r#music_by.as_slice()
493	}
494	fn take_music_by(&mut self) -> Vec<MusicByProperty> {
495		std::mem::take(&mut self.r#music_by)
496	}
497	fn get_number_of_episodes(&self) -> &[NumberOfEpisodesProperty] {
498		self.r#number_of_episodes.as_slice()
499	}
500	fn take_number_of_episodes(&mut self) -> Vec<NumberOfEpisodesProperty> {
501		std::mem::take(&mut self.r#number_of_episodes)
502	}
503	fn get_number_of_players(&self) -> &[NumberOfPlayersProperty] {
504		self.r#number_of_players.as_slice()
505	}
506	fn take_number_of_players(&mut self) -> Vec<NumberOfPlayersProperty> {
507		std::mem::take(&mut self.r#number_of_players)
508	}
509	fn get_number_of_seasons(&self) -> &[NumberOfSeasonsProperty] {
510		self.r#number_of_seasons.as_slice()
511	}
512	fn take_number_of_seasons(&mut self) -> Vec<NumberOfSeasonsProperty> {
513		std::mem::take(&mut self.r#number_of_seasons)
514	}
515	fn get_play_mode(&self) -> &[PlayModeProperty] {
516		self.r#play_mode.as_slice()
517	}
518	fn take_play_mode(&mut self) -> Vec<PlayModeProperty> {
519		std::mem::take(&mut self.r#play_mode)
520	}
521	fn get_production_company(&self) -> &[ProductionCompanyProperty] {
522		self.r#production_company.as_slice()
523	}
524	fn take_production_company(&mut self) -> Vec<ProductionCompanyProperty> {
525		std::mem::take(&mut self.r#production_company)
526	}
527	fn get_quest(&self) -> &[QuestProperty] {
528		self.r#quest.as_slice()
529	}
530	fn take_quest(&mut self) -> Vec<QuestProperty> {
531		std::mem::take(&mut self.r#quest)
532	}
533	fn get_season(&self) -> &[SeasonProperty] {
534		self.r#season.as_slice()
535	}
536	fn take_season(&mut self) -> Vec<SeasonProperty> {
537		std::mem::take(&mut self.r#season)
538	}
539	fn get_seasons(&self) -> &[SeasonsProperty] {
540		self.r#seasons.as_slice()
541	}
542	fn take_seasons(&mut self) -> Vec<SeasonsProperty> {
543		std::mem::take(&mut self.r#seasons)
544	}
545	fn get_trailer(&self) -> &[TrailerProperty] {
546		self.r#trailer.as_slice()
547	}
548	fn take_trailer(&mut self) -> Vec<TrailerProperty> {
549		std::mem::take(&mut self.r#trailer)
550	}
551}
552impl CreativeWorkTrait for VideoGameSeries {
553	fn get_about(&self) -> &[AboutProperty] {
554		self.r#about.as_slice()
555	}
556	fn take_about(&mut self) -> Vec<AboutProperty> {
557		std::mem::take(&mut self.r#about)
558	}
559	fn get_abstract(&self) -> &[AbstractProperty] {
560		self.r#abstract.as_slice()
561	}
562	fn take_abstract(&mut self) -> Vec<AbstractProperty> {
563		std::mem::take(&mut self.r#abstract)
564	}
565	fn get_access_mode(&self) -> &[AccessModeProperty] {
566		self.r#access_mode.as_slice()
567	}
568	fn take_access_mode(&mut self) -> Vec<AccessModeProperty> {
569		std::mem::take(&mut self.r#access_mode)
570	}
571	fn get_access_mode_sufficient(&self) -> &[AccessModeSufficientProperty] {
572		self.r#access_mode_sufficient.as_slice()
573	}
574	fn take_access_mode_sufficient(&mut self) -> Vec<AccessModeSufficientProperty> {
575		std::mem::take(&mut self.r#access_mode_sufficient)
576	}
577	fn get_accessibility_api(&self) -> &[AccessibilityApiProperty] {
578		self.r#accessibility_api.as_slice()
579	}
580	fn take_accessibility_api(&mut self) -> Vec<AccessibilityApiProperty> {
581		std::mem::take(&mut self.r#accessibility_api)
582	}
583	fn get_accessibility_control(&self) -> &[AccessibilityControlProperty] {
584		self.r#accessibility_control.as_slice()
585	}
586	fn take_accessibility_control(&mut self) -> Vec<AccessibilityControlProperty> {
587		std::mem::take(&mut self.r#accessibility_control)
588	}
589	fn get_accessibility_feature(&self) -> &[AccessibilityFeatureProperty] {
590		self.r#accessibility_feature.as_slice()
591	}
592	fn take_accessibility_feature(&mut self) -> Vec<AccessibilityFeatureProperty> {
593		std::mem::take(&mut self.r#accessibility_feature)
594	}
595	fn get_accessibility_hazard(&self) -> &[AccessibilityHazardProperty] {
596		self.r#accessibility_hazard.as_slice()
597	}
598	fn take_accessibility_hazard(&mut self) -> Vec<AccessibilityHazardProperty> {
599		std::mem::take(&mut self.r#accessibility_hazard)
600	}
601	fn get_accessibility_summary(&self) -> &[AccessibilitySummaryProperty] {
602		self.r#accessibility_summary.as_slice()
603	}
604	fn take_accessibility_summary(&mut self) -> Vec<AccessibilitySummaryProperty> {
605		std::mem::take(&mut self.r#accessibility_summary)
606	}
607	fn get_accountable_person(&self) -> &[AccountablePersonProperty] {
608		self.r#accountable_person.as_slice()
609	}
610	fn take_accountable_person(&mut self) -> Vec<AccountablePersonProperty> {
611		std::mem::take(&mut self.r#accountable_person)
612	}
613	fn get_acquire_license_page(&self) -> &[AcquireLicensePageProperty] {
614		self.r#acquire_license_page.as_slice()
615	}
616	fn take_acquire_license_page(&mut self) -> Vec<AcquireLicensePageProperty> {
617		std::mem::take(&mut self.r#acquire_license_page)
618	}
619	fn get_aggregate_rating(&self) -> &[AggregateRatingProperty] {
620		self.r#aggregate_rating.as_slice()
621	}
622	fn take_aggregate_rating(&mut self) -> Vec<AggregateRatingProperty> {
623		std::mem::take(&mut self.r#aggregate_rating)
624	}
625	fn get_alternative_headline(&self) -> &[AlternativeHeadlineProperty] {
626		self.r#alternative_headline.as_slice()
627	}
628	fn take_alternative_headline(&mut self) -> Vec<AlternativeHeadlineProperty> {
629		std::mem::take(&mut self.r#alternative_headline)
630	}
631	fn get_archived_at(&self) -> &[ArchivedAtProperty] {
632		self.r#archived_at.as_slice()
633	}
634	fn take_archived_at(&mut self) -> Vec<ArchivedAtProperty> {
635		std::mem::take(&mut self.r#archived_at)
636	}
637	fn get_assesses(&self) -> &[AssessesProperty] {
638		self.r#assesses.as_slice()
639	}
640	fn take_assesses(&mut self) -> Vec<AssessesProperty> {
641		std::mem::take(&mut self.r#assesses)
642	}
643	fn get_associated_media(&self) -> &[AssociatedMediaProperty] {
644		self.r#associated_media.as_slice()
645	}
646	fn take_associated_media(&mut self) -> Vec<AssociatedMediaProperty> {
647		std::mem::take(&mut self.r#associated_media)
648	}
649	fn get_audience(&self) -> &[AudienceProperty] {
650		self.r#audience.as_slice()
651	}
652	fn take_audience(&mut self) -> Vec<AudienceProperty> {
653		std::mem::take(&mut self.r#audience)
654	}
655	fn get_audio(&self) -> &[AudioProperty] {
656		self.r#audio.as_slice()
657	}
658	fn take_audio(&mut self) -> Vec<AudioProperty> {
659		std::mem::take(&mut self.r#audio)
660	}
661	fn get_author(&self) -> &[AuthorProperty] {
662		self.r#author.as_slice()
663	}
664	fn take_author(&mut self) -> Vec<AuthorProperty> {
665		std::mem::take(&mut self.r#author)
666	}
667	fn get_award(&self) -> &[AwardProperty] {
668		self.r#award.as_slice()
669	}
670	fn take_award(&mut self) -> Vec<AwardProperty> {
671		std::mem::take(&mut self.r#award)
672	}
673	fn get_awards(&self) -> &[AwardsProperty] {
674		self.r#awards.as_slice()
675	}
676	fn take_awards(&mut self) -> Vec<AwardsProperty> {
677		std::mem::take(&mut self.r#awards)
678	}
679	fn get_character(&self) -> &[CharacterProperty] {
680		self.r#character.as_slice()
681	}
682	fn take_character(&mut self) -> Vec<CharacterProperty> {
683		std::mem::take(&mut self.r#character)
684	}
685	fn get_citation(&self) -> &[CitationProperty] {
686		self.r#citation.as_slice()
687	}
688	fn take_citation(&mut self) -> Vec<CitationProperty> {
689		std::mem::take(&mut self.r#citation)
690	}
691	fn get_comment(&self) -> &[CommentProperty] {
692		self.r#comment.as_slice()
693	}
694	fn take_comment(&mut self) -> Vec<CommentProperty> {
695		std::mem::take(&mut self.r#comment)
696	}
697	fn get_comment_count(&self) -> &[CommentCountProperty] {
698		self.r#comment_count.as_slice()
699	}
700	fn take_comment_count(&mut self) -> Vec<CommentCountProperty> {
701		std::mem::take(&mut self.r#comment_count)
702	}
703	fn get_conditions_of_access(&self) -> &[ConditionsOfAccessProperty] {
704		self.r#conditions_of_access.as_slice()
705	}
706	fn take_conditions_of_access(&mut self) -> Vec<ConditionsOfAccessProperty> {
707		std::mem::take(&mut self.r#conditions_of_access)
708	}
709	fn get_content_location(&self) -> &[ContentLocationProperty] {
710		self.r#content_location.as_slice()
711	}
712	fn take_content_location(&mut self) -> Vec<ContentLocationProperty> {
713		std::mem::take(&mut self.r#content_location)
714	}
715	fn get_content_rating(&self) -> &[ContentRatingProperty] {
716		self.r#content_rating.as_slice()
717	}
718	fn take_content_rating(&mut self) -> Vec<ContentRatingProperty> {
719		std::mem::take(&mut self.r#content_rating)
720	}
721	fn get_content_reference_time(&self) -> &[ContentReferenceTimeProperty] {
722		self.r#content_reference_time.as_slice()
723	}
724	fn take_content_reference_time(&mut self) -> Vec<ContentReferenceTimeProperty> {
725		std::mem::take(&mut self.r#content_reference_time)
726	}
727	fn get_contributor(&self) -> &[ContributorProperty] {
728		self.r#contributor.as_slice()
729	}
730	fn take_contributor(&mut self) -> Vec<ContributorProperty> {
731		std::mem::take(&mut self.r#contributor)
732	}
733	fn get_copyright_holder(&self) -> &[CopyrightHolderProperty] {
734		self.r#copyright_holder.as_slice()
735	}
736	fn take_copyright_holder(&mut self) -> Vec<CopyrightHolderProperty> {
737		std::mem::take(&mut self.r#copyright_holder)
738	}
739	fn get_copyright_notice(&self) -> &[CopyrightNoticeProperty] {
740		self.r#copyright_notice.as_slice()
741	}
742	fn take_copyright_notice(&mut self) -> Vec<CopyrightNoticeProperty> {
743		std::mem::take(&mut self.r#copyright_notice)
744	}
745	fn get_copyright_year(&self) -> &[CopyrightYearProperty] {
746		self.r#copyright_year.as_slice()
747	}
748	fn take_copyright_year(&mut self) -> Vec<CopyrightYearProperty> {
749		std::mem::take(&mut self.r#copyright_year)
750	}
751	fn get_correction(&self) -> &[CorrectionProperty] {
752		self.r#correction.as_slice()
753	}
754	fn take_correction(&mut self) -> Vec<CorrectionProperty> {
755		std::mem::take(&mut self.r#correction)
756	}
757	fn get_country_of_origin(&self) -> &[CountryOfOriginProperty] {
758		self.r#country_of_origin.as_slice()
759	}
760	fn take_country_of_origin(&mut self) -> Vec<CountryOfOriginProperty> {
761		std::mem::take(&mut self.r#country_of_origin)
762	}
763	fn get_creative_work_status(&self) -> &[CreativeWorkStatusProperty] {
764		self.r#creative_work_status.as_slice()
765	}
766	fn take_creative_work_status(&mut self) -> Vec<CreativeWorkStatusProperty> {
767		std::mem::take(&mut self.r#creative_work_status)
768	}
769	fn get_creator(&self) -> &[CreatorProperty] {
770		self.r#creator.as_slice()
771	}
772	fn take_creator(&mut self) -> Vec<CreatorProperty> {
773		std::mem::take(&mut self.r#creator)
774	}
775	fn get_credit_text(&self) -> &[CreditTextProperty] {
776		self.r#credit_text.as_slice()
777	}
778	fn take_credit_text(&mut self) -> Vec<CreditTextProperty> {
779		std::mem::take(&mut self.r#credit_text)
780	}
781	fn get_date_created(&self) -> &[DateCreatedProperty] {
782		self.r#date_created.as_slice()
783	}
784	fn take_date_created(&mut self) -> Vec<DateCreatedProperty> {
785		std::mem::take(&mut self.r#date_created)
786	}
787	fn get_date_modified(&self) -> &[DateModifiedProperty] {
788		self.r#date_modified.as_slice()
789	}
790	fn take_date_modified(&mut self) -> Vec<DateModifiedProperty> {
791		std::mem::take(&mut self.r#date_modified)
792	}
793	fn get_date_published(&self) -> &[DatePublishedProperty] {
794		self.r#date_published.as_slice()
795	}
796	fn take_date_published(&mut self) -> Vec<DatePublishedProperty> {
797		std::mem::take(&mut self.r#date_published)
798	}
799	fn get_discussion_url(&self) -> &[DiscussionUrlProperty] {
800		self.r#discussion_url.as_slice()
801	}
802	fn take_discussion_url(&mut self) -> Vec<DiscussionUrlProperty> {
803		std::mem::take(&mut self.r#discussion_url)
804	}
805	fn get_edit_eidr(&self) -> &[EditEidrProperty] {
806		self.r#edit_eidr.as_slice()
807	}
808	fn take_edit_eidr(&mut self) -> Vec<EditEidrProperty> {
809		std::mem::take(&mut self.r#edit_eidr)
810	}
811	fn get_editor(&self) -> &[EditorProperty] {
812		self.r#editor.as_slice()
813	}
814	fn take_editor(&mut self) -> Vec<EditorProperty> {
815		std::mem::take(&mut self.r#editor)
816	}
817	fn get_educational_alignment(&self) -> &[EducationalAlignmentProperty] {
818		self.r#educational_alignment.as_slice()
819	}
820	fn take_educational_alignment(&mut self) -> Vec<EducationalAlignmentProperty> {
821		std::mem::take(&mut self.r#educational_alignment)
822	}
823	fn get_educational_level(&self) -> &[EducationalLevelProperty] {
824		self.r#educational_level.as_slice()
825	}
826	fn take_educational_level(&mut self) -> Vec<EducationalLevelProperty> {
827		std::mem::take(&mut self.r#educational_level)
828	}
829	fn get_educational_use(&self) -> &[EducationalUseProperty] {
830		self.r#educational_use.as_slice()
831	}
832	fn take_educational_use(&mut self) -> Vec<EducationalUseProperty> {
833		std::mem::take(&mut self.r#educational_use)
834	}
835	fn get_encoding(&self) -> &[EncodingProperty] {
836		self.r#encoding.as_slice()
837	}
838	fn take_encoding(&mut self) -> Vec<EncodingProperty> {
839		std::mem::take(&mut self.r#encoding)
840	}
841	fn get_encoding_format(&self) -> &[EncodingFormatProperty] {
842		self.r#encoding_format.as_slice()
843	}
844	fn take_encoding_format(&mut self) -> Vec<EncodingFormatProperty> {
845		std::mem::take(&mut self.r#encoding_format)
846	}
847	fn get_encodings(&self) -> &[EncodingsProperty] {
848		self.r#encodings.as_slice()
849	}
850	fn take_encodings(&mut self) -> Vec<EncodingsProperty> {
851		std::mem::take(&mut self.r#encodings)
852	}
853	fn get_example_of_work(&self) -> &[ExampleOfWorkProperty] {
854		self.r#example_of_work.as_slice()
855	}
856	fn take_example_of_work(&mut self) -> Vec<ExampleOfWorkProperty> {
857		std::mem::take(&mut self.r#example_of_work)
858	}
859	fn get_expires(&self) -> &[ExpiresProperty] {
860		self.r#expires.as_slice()
861	}
862	fn take_expires(&mut self) -> Vec<ExpiresProperty> {
863		std::mem::take(&mut self.r#expires)
864	}
865	fn get_file_format(&self) -> &[FileFormatProperty] {
866		self.r#file_format.as_slice()
867	}
868	fn take_file_format(&mut self) -> Vec<FileFormatProperty> {
869		std::mem::take(&mut self.r#file_format)
870	}
871	fn get_funder(&self) -> &[FunderProperty] {
872		self.r#funder.as_slice()
873	}
874	fn take_funder(&mut self) -> Vec<FunderProperty> {
875		std::mem::take(&mut self.r#funder)
876	}
877	fn get_funding(&self) -> &[FundingProperty] {
878		self.r#funding.as_slice()
879	}
880	fn take_funding(&mut self) -> Vec<FundingProperty> {
881		std::mem::take(&mut self.r#funding)
882	}
883	fn get_genre(&self) -> &[GenreProperty] {
884		self.r#genre.as_slice()
885	}
886	fn take_genre(&mut self) -> Vec<GenreProperty> {
887		std::mem::take(&mut self.r#genre)
888	}
889	fn get_has_part(&self) -> &[HasPartProperty] {
890		self.r#has_part.as_slice()
891	}
892	fn take_has_part(&mut self) -> Vec<HasPartProperty> {
893		std::mem::take(&mut self.r#has_part)
894	}
895	fn get_headline(&self) -> &[HeadlineProperty] {
896		self.r#headline.as_slice()
897	}
898	fn take_headline(&mut self) -> Vec<HeadlineProperty> {
899		std::mem::take(&mut self.r#headline)
900	}
901	fn get_in_language(&self) -> &[InLanguageProperty] {
902		self.r#in_language.as_slice()
903	}
904	fn take_in_language(&mut self) -> Vec<InLanguageProperty> {
905		std::mem::take(&mut self.r#in_language)
906	}
907	fn get_interaction_statistic(&self) -> &[InteractionStatisticProperty] {
908		self.r#interaction_statistic.as_slice()
909	}
910	fn take_interaction_statistic(&mut self) -> Vec<InteractionStatisticProperty> {
911		std::mem::take(&mut self.r#interaction_statistic)
912	}
913	fn get_interactivity_type(&self) -> &[InteractivityTypeProperty] {
914		self.r#interactivity_type.as_slice()
915	}
916	fn take_interactivity_type(&mut self) -> Vec<InteractivityTypeProperty> {
917		std::mem::take(&mut self.r#interactivity_type)
918	}
919	fn get_interpreted_as_claim(&self) -> &[InterpretedAsClaimProperty] {
920		self.r#interpreted_as_claim.as_slice()
921	}
922	fn take_interpreted_as_claim(&mut self) -> Vec<InterpretedAsClaimProperty> {
923		std::mem::take(&mut self.r#interpreted_as_claim)
924	}
925	fn get_is_accessible_for_free(&self) -> &[IsAccessibleForFreeProperty] {
926		self.r#is_accessible_for_free.as_slice()
927	}
928	fn take_is_accessible_for_free(&mut self) -> Vec<IsAccessibleForFreeProperty> {
929		std::mem::take(&mut self.r#is_accessible_for_free)
930	}
931	fn get_is_based_on(&self) -> &[IsBasedOnProperty] {
932		self.r#is_based_on.as_slice()
933	}
934	fn take_is_based_on(&mut self) -> Vec<IsBasedOnProperty> {
935		std::mem::take(&mut self.r#is_based_on)
936	}
937	fn get_is_based_on_url(&self) -> &[IsBasedOnUrlProperty] {
938		self.r#is_based_on_url.as_slice()
939	}
940	fn take_is_based_on_url(&mut self) -> Vec<IsBasedOnUrlProperty> {
941		std::mem::take(&mut self.r#is_based_on_url)
942	}
943	fn get_is_family_friendly(&self) -> &[IsFamilyFriendlyProperty] {
944		self.r#is_family_friendly.as_slice()
945	}
946	fn take_is_family_friendly(&mut self) -> Vec<IsFamilyFriendlyProperty> {
947		std::mem::take(&mut self.r#is_family_friendly)
948	}
949	fn get_is_part_of(&self) -> &[IsPartOfProperty] {
950		self.r#is_part_of.as_slice()
951	}
952	fn take_is_part_of(&mut self) -> Vec<IsPartOfProperty> {
953		std::mem::take(&mut self.r#is_part_of)
954	}
955	fn get_keywords(&self) -> &[KeywordsProperty] {
956		self.r#keywords.as_slice()
957	}
958	fn take_keywords(&mut self) -> Vec<KeywordsProperty> {
959		std::mem::take(&mut self.r#keywords)
960	}
961	fn get_learning_resource_type(&self) -> &[LearningResourceTypeProperty] {
962		self.r#learning_resource_type.as_slice()
963	}
964	fn take_learning_resource_type(&mut self) -> Vec<LearningResourceTypeProperty> {
965		std::mem::take(&mut self.r#learning_resource_type)
966	}
967	fn get_license(&self) -> &[LicenseProperty] {
968		self.r#license.as_slice()
969	}
970	fn take_license(&mut self) -> Vec<LicenseProperty> {
971		std::mem::take(&mut self.r#license)
972	}
973	fn get_location_created(&self) -> &[LocationCreatedProperty] {
974		self.r#location_created.as_slice()
975	}
976	fn take_location_created(&mut self) -> Vec<LocationCreatedProperty> {
977		std::mem::take(&mut self.r#location_created)
978	}
979	fn get_main_entity(&self) -> &[MainEntityProperty] {
980		self.r#main_entity.as_slice()
981	}
982	fn take_main_entity(&mut self) -> Vec<MainEntityProperty> {
983		std::mem::take(&mut self.r#main_entity)
984	}
985	fn get_maintainer(&self) -> &[MaintainerProperty] {
986		self.r#maintainer.as_slice()
987	}
988	fn take_maintainer(&mut self) -> Vec<MaintainerProperty> {
989		std::mem::take(&mut self.r#maintainer)
990	}
991	fn get_material(&self) -> &[MaterialProperty] {
992		self.r#material.as_slice()
993	}
994	fn take_material(&mut self) -> Vec<MaterialProperty> {
995		std::mem::take(&mut self.r#material)
996	}
997	fn get_material_extent(&self) -> &[MaterialExtentProperty] {
998		self.r#material_extent.as_slice()
999	}
1000	fn take_material_extent(&mut self) -> Vec<MaterialExtentProperty> {
1001		std::mem::take(&mut self.r#material_extent)
1002	}
1003	fn get_mentions(&self) -> &[MentionsProperty] {
1004		self.r#mentions.as_slice()
1005	}
1006	fn take_mentions(&mut self) -> Vec<MentionsProperty> {
1007		std::mem::take(&mut self.r#mentions)
1008	}
1009	fn get_offers(&self) -> &[OffersProperty] {
1010		self.r#offers.as_slice()
1011	}
1012	fn take_offers(&mut self) -> Vec<OffersProperty> {
1013		std::mem::take(&mut self.r#offers)
1014	}
1015	fn get_pattern(&self) -> &[PatternProperty] {
1016		self.r#pattern.as_slice()
1017	}
1018	fn take_pattern(&mut self) -> Vec<PatternProperty> {
1019		std::mem::take(&mut self.r#pattern)
1020	}
1021	fn get_position(&self) -> &[PositionProperty] {
1022		self.r#position.as_slice()
1023	}
1024	fn take_position(&mut self) -> Vec<PositionProperty> {
1025		std::mem::take(&mut self.r#position)
1026	}
1027	fn get_producer(&self) -> &[ProducerProperty] {
1028		self.r#producer.as_slice()
1029	}
1030	fn take_producer(&mut self) -> Vec<ProducerProperty> {
1031		std::mem::take(&mut self.r#producer)
1032	}
1033	fn get_provider(&self) -> &[ProviderProperty] {
1034		self.r#provider.as_slice()
1035	}
1036	fn take_provider(&mut self) -> Vec<ProviderProperty> {
1037		std::mem::take(&mut self.r#provider)
1038	}
1039	fn get_publication(&self) -> &[PublicationProperty] {
1040		self.r#publication.as_slice()
1041	}
1042	fn take_publication(&mut self) -> Vec<PublicationProperty> {
1043		std::mem::take(&mut self.r#publication)
1044	}
1045	fn get_publisher(&self) -> &[PublisherProperty] {
1046		self.r#publisher.as_slice()
1047	}
1048	fn take_publisher(&mut self) -> Vec<PublisherProperty> {
1049		std::mem::take(&mut self.r#publisher)
1050	}
1051	fn get_publisher_imprint(&self) -> &[PublisherImprintProperty] {
1052		self.r#publisher_imprint.as_slice()
1053	}
1054	fn take_publisher_imprint(&mut self) -> Vec<PublisherImprintProperty> {
1055		std::mem::take(&mut self.r#publisher_imprint)
1056	}
1057	fn get_publishing_principles(&self) -> &[PublishingPrinciplesProperty] {
1058		self.r#publishing_principles.as_slice()
1059	}
1060	fn take_publishing_principles(&mut self) -> Vec<PublishingPrinciplesProperty> {
1061		std::mem::take(&mut self.r#publishing_principles)
1062	}
1063	fn get_recorded_at(&self) -> &[RecordedAtProperty] {
1064		self.r#recorded_at.as_slice()
1065	}
1066	fn take_recorded_at(&mut self) -> Vec<RecordedAtProperty> {
1067		std::mem::take(&mut self.r#recorded_at)
1068	}
1069	fn get_released_event(&self) -> &[ReleasedEventProperty] {
1070		self.r#released_event.as_slice()
1071	}
1072	fn take_released_event(&mut self) -> Vec<ReleasedEventProperty> {
1073		std::mem::take(&mut self.r#released_event)
1074	}
1075	fn get_review(&self) -> &[ReviewProperty] {
1076		self.r#review.as_slice()
1077	}
1078	fn take_review(&mut self) -> Vec<ReviewProperty> {
1079		std::mem::take(&mut self.r#review)
1080	}
1081	fn get_reviews(&self) -> &[ReviewsProperty] {
1082		self.r#reviews.as_slice()
1083	}
1084	fn take_reviews(&mut self) -> Vec<ReviewsProperty> {
1085		std::mem::take(&mut self.r#reviews)
1086	}
1087	fn get_schema_version(&self) -> &[SchemaVersionProperty] {
1088		self.r#schema_version.as_slice()
1089	}
1090	fn take_schema_version(&mut self) -> Vec<SchemaVersionProperty> {
1091		std::mem::take(&mut self.r#schema_version)
1092	}
1093	fn get_sd_date_published(&self) -> &[SdDatePublishedProperty] {
1094		self.r#sd_date_published.as_slice()
1095	}
1096	fn take_sd_date_published(&mut self) -> Vec<SdDatePublishedProperty> {
1097		std::mem::take(&mut self.r#sd_date_published)
1098	}
1099	fn get_sd_license(&self) -> &[SdLicenseProperty] {
1100		self.r#sd_license.as_slice()
1101	}
1102	fn take_sd_license(&mut self) -> Vec<SdLicenseProperty> {
1103		std::mem::take(&mut self.r#sd_license)
1104	}
1105	fn get_sd_publisher(&self) -> &[SdPublisherProperty] {
1106		self.r#sd_publisher.as_slice()
1107	}
1108	fn take_sd_publisher(&mut self) -> Vec<SdPublisherProperty> {
1109		std::mem::take(&mut self.r#sd_publisher)
1110	}
1111	fn get_size(&self) -> &[SizeProperty] {
1112		self.r#size.as_slice()
1113	}
1114	fn take_size(&mut self) -> Vec<SizeProperty> {
1115		std::mem::take(&mut self.r#size)
1116	}
1117	fn get_source_organization(&self) -> &[SourceOrganizationProperty] {
1118		self.r#source_organization.as_slice()
1119	}
1120	fn take_source_organization(&mut self) -> Vec<SourceOrganizationProperty> {
1121		std::mem::take(&mut self.r#source_organization)
1122	}
1123	fn get_spatial(&self) -> &[SpatialProperty] {
1124		self.r#spatial.as_slice()
1125	}
1126	fn take_spatial(&mut self) -> Vec<SpatialProperty> {
1127		std::mem::take(&mut self.r#spatial)
1128	}
1129	fn get_spatial_coverage(&self) -> &[SpatialCoverageProperty] {
1130		self.r#spatial_coverage.as_slice()
1131	}
1132	fn take_spatial_coverage(&mut self) -> Vec<SpatialCoverageProperty> {
1133		std::mem::take(&mut self.r#spatial_coverage)
1134	}
1135	fn get_sponsor(&self) -> &[SponsorProperty] {
1136		self.r#sponsor.as_slice()
1137	}
1138	fn take_sponsor(&mut self) -> Vec<SponsorProperty> {
1139		std::mem::take(&mut self.r#sponsor)
1140	}
1141	fn get_teaches(&self) -> &[TeachesProperty] {
1142		self.r#teaches.as_slice()
1143	}
1144	fn take_teaches(&mut self) -> Vec<TeachesProperty> {
1145		std::mem::take(&mut self.r#teaches)
1146	}
1147	fn get_temporal(&self) -> &[TemporalProperty] {
1148		self.r#temporal.as_slice()
1149	}
1150	fn take_temporal(&mut self) -> Vec<TemporalProperty> {
1151		std::mem::take(&mut self.r#temporal)
1152	}
1153	fn get_temporal_coverage(&self) -> &[TemporalCoverageProperty] {
1154		self.r#temporal_coverage.as_slice()
1155	}
1156	fn take_temporal_coverage(&mut self) -> Vec<TemporalCoverageProperty> {
1157		std::mem::take(&mut self.r#temporal_coverage)
1158	}
1159	fn get_text(&self) -> &[TextProperty] {
1160		self.r#text.as_slice()
1161	}
1162	fn take_text(&mut self) -> Vec<TextProperty> {
1163		std::mem::take(&mut self.r#text)
1164	}
1165	fn get_thumbnail(&self) -> &[ThumbnailProperty] {
1166		self.r#thumbnail.as_slice()
1167	}
1168	fn take_thumbnail(&mut self) -> Vec<ThumbnailProperty> {
1169		std::mem::take(&mut self.r#thumbnail)
1170	}
1171	fn get_thumbnail_url(&self) -> &[ThumbnailUrlProperty] {
1172		self.r#thumbnail_url.as_slice()
1173	}
1174	fn take_thumbnail_url(&mut self) -> Vec<ThumbnailUrlProperty> {
1175		std::mem::take(&mut self.r#thumbnail_url)
1176	}
1177	fn get_time_required(&self) -> &[TimeRequiredProperty] {
1178		self.r#time_required.as_slice()
1179	}
1180	fn take_time_required(&mut self) -> Vec<TimeRequiredProperty> {
1181		std::mem::take(&mut self.r#time_required)
1182	}
1183	fn get_translation_of_work(&self) -> &[TranslationOfWorkProperty] {
1184		self.r#translation_of_work.as_slice()
1185	}
1186	fn take_translation_of_work(&mut self) -> Vec<TranslationOfWorkProperty> {
1187		std::mem::take(&mut self.r#translation_of_work)
1188	}
1189	fn get_translator(&self) -> &[TranslatorProperty] {
1190		self.r#translator.as_slice()
1191	}
1192	fn take_translator(&mut self) -> Vec<TranslatorProperty> {
1193		std::mem::take(&mut self.r#translator)
1194	}
1195	fn get_typical_age_range(&self) -> &[TypicalAgeRangeProperty] {
1196		self.r#typical_age_range.as_slice()
1197	}
1198	fn take_typical_age_range(&mut self) -> Vec<TypicalAgeRangeProperty> {
1199		std::mem::take(&mut self.r#typical_age_range)
1200	}
1201	fn get_usage_info(&self) -> &[UsageInfoProperty] {
1202		self.r#usage_info.as_slice()
1203	}
1204	fn take_usage_info(&mut self) -> Vec<UsageInfoProperty> {
1205		std::mem::take(&mut self.r#usage_info)
1206	}
1207	fn get_version(&self) -> &[VersionProperty] {
1208		self.r#version.as_slice()
1209	}
1210	fn take_version(&mut self) -> Vec<VersionProperty> {
1211		std::mem::take(&mut self.r#version)
1212	}
1213	fn get_video(&self) -> &[VideoProperty] {
1214		self.r#video.as_slice()
1215	}
1216	fn take_video(&mut self) -> Vec<VideoProperty> {
1217		std::mem::take(&mut self.r#video)
1218	}
1219	fn get_work_example(&self) -> &[WorkExampleProperty] {
1220		self.r#work_example.as_slice()
1221	}
1222	fn take_work_example(&mut self) -> Vec<WorkExampleProperty> {
1223		std::mem::take(&mut self.r#work_example)
1224	}
1225	fn get_work_translation(&self) -> &[WorkTranslationProperty] {
1226		self.r#work_translation.as_slice()
1227	}
1228	fn take_work_translation(&mut self) -> Vec<WorkTranslationProperty> {
1229		std::mem::take(&mut self.r#work_translation)
1230	}
1231}
1232impl CreativeWorkSeriesTrait for VideoGameSeries {
1233	fn get_end_date(&self) -> &[EndDateProperty] {
1234		self.r#end_date.as_slice()
1235	}
1236	fn take_end_date(&mut self) -> Vec<EndDateProperty> {
1237		std::mem::take(&mut self.r#end_date)
1238	}
1239	fn get_issn(&self) -> &[IssnProperty] {
1240		self.r#issn.as_slice()
1241	}
1242	fn take_issn(&mut self) -> Vec<IssnProperty> {
1243		std::mem::take(&mut self.r#issn)
1244	}
1245	fn get_start_date(&self) -> &[StartDateProperty] {
1246		self.r#start_date.as_slice()
1247	}
1248	fn take_start_date(&mut self) -> Vec<StartDateProperty> {
1249		std::mem::take(&mut self.r#start_date)
1250	}
1251}
1252impl ThingTrait for VideoGameSeries {
1253	fn get_additional_type(&self) -> &[AdditionalTypeProperty] {
1254		self.r#additional_type.as_slice()
1255	}
1256	fn take_additional_type(&mut self) -> Vec<AdditionalTypeProperty> {
1257		std::mem::take(&mut self.r#additional_type)
1258	}
1259	fn get_alternate_name(&self) -> &[AlternateNameProperty] {
1260		self.r#alternate_name.as_slice()
1261	}
1262	fn take_alternate_name(&mut self) -> Vec<AlternateNameProperty> {
1263		std::mem::take(&mut self.r#alternate_name)
1264	}
1265	fn get_description(&self) -> &[DescriptionProperty] {
1266		self.r#description.as_slice()
1267	}
1268	fn take_description(&mut self) -> Vec<DescriptionProperty> {
1269		std::mem::take(&mut self.r#description)
1270	}
1271	fn get_disambiguating_description(&self) -> &[DisambiguatingDescriptionProperty] {
1272		self.r#disambiguating_description.as_slice()
1273	}
1274	fn take_disambiguating_description(&mut self) -> Vec<DisambiguatingDescriptionProperty> {
1275		std::mem::take(&mut self.r#disambiguating_description)
1276	}
1277	fn get_identifier(&self) -> &[IdentifierProperty] {
1278		self.r#identifier.as_slice()
1279	}
1280	fn take_identifier(&mut self) -> Vec<IdentifierProperty> {
1281		std::mem::take(&mut self.r#identifier)
1282	}
1283	fn get_image(&self) -> &[ImageProperty] {
1284		self.r#image.as_slice()
1285	}
1286	fn take_image(&mut self) -> Vec<ImageProperty> {
1287		std::mem::take(&mut self.r#image)
1288	}
1289	fn get_main_entity_of_page(&self) -> &[MainEntityOfPageProperty] {
1290		self.r#main_entity_of_page.as_slice()
1291	}
1292	fn take_main_entity_of_page(&mut self) -> Vec<MainEntityOfPageProperty> {
1293		std::mem::take(&mut self.r#main_entity_of_page)
1294	}
1295	fn get_name(&self) -> &[NameProperty] {
1296		self.r#name.as_slice()
1297	}
1298	fn take_name(&mut self) -> Vec<NameProperty> {
1299		std::mem::take(&mut self.r#name)
1300	}
1301	fn get_potential_action(&self) -> &[PotentialActionProperty] {
1302		self.r#potential_action.as_slice()
1303	}
1304	fn take_potential_action(&mut self) -> Vec<PotentialActionProperty> {
1305		std::mem::take(&mut self.r#potential_action)
1306	}
1307	fn get_same_as(&self) -> &[SameAsProperty] {
1308		self.r#same_as.as_slice()
1309	}
1310	fn take_same_as(&mut self) -> Vec<SameAsProperty> {
1311		std::mem::take(&mut self.r#same_as)
1312	}
1313	fn get_subject_of(&self) -> &[SubjectOfProperty] {
1314		self.r#subject_of.as_slice()
1315	}
1316	fn take_subject_of(&mut self) -> Vec<SubjectOfProperty> {
1317		std::mem::take(&mut self.r#subject_of)
1318	}
1319	fn get_url(&self) -> &[UrlProperty] {
1320		self.r#url.as_slice()
1321	}
1322	fn take_url(&mut self) -> Vec<UrlProperty> {
1323		std::mem::take(&mut self.r#url)
1324	}
1325}
1326#[cfg(feature = "serde")]
1327mod serde {
1328	use std::{fmt, fmt::Formatter};
1329
1330	use ::serde::{
1331		de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
1332	};
1333
1334	use super::*;
1335	impl Serialize for VideoGameSeries {
1336		fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1337		where
1338			S: Serializer,
1339		{
1340			let len: usize = [
1341				!Vec::is_empty(&self.r#actor) as usize,
1342				!Vec::is_empty(&self.r#actors) as usize,
1343				!Vec::is_empty(&self.r#character_attribute) as usize,
1344				!Vec::is_empty(&self.r#cheat_code) as usize,
1345				!Vec::is_empty(&self.r#contains_season) as usize,
1346				!Vec::is_empty(&self.r#director) as usize,
1347				!Vec::is_empty(&self.r#directors) as usize,
1348				!Vec::is_empty(&self.r#episode) as usize,
1349				!Vec::is_empty(&self.r#episodes) as usize,
1350				!Vec::is_empty(&self.r#game_item) as usize,
1351				!Vec::is_empty(&self.r#game_location) as usize,
1352				!Vec::is_empty(&self.r#game_platform) as usize,
1353				!Vec::is_empty(&self.r#music_by) as usize,
1354				!Vec::is_empty(&self.r#number_of_episodes) as usize,
1355				!Vec::is_empty(&self.r#number_of_players) as usize,
1356				!Vec::is_empty(&self.r#number_of_seasons) as usize,
1357				!Vec::is_empty(&self.r#play_mode) as usize,
1358				!Vec::is_empty(&self.r#production_company) as usize,
1359				!Vec::is_empty(&self.r#quest) as usize,
1360				!Vec::is_empty(&self.r#season) as usize,
1361				!Vec::is_empty(&self.r#seasons) as usize,
1362				!Vec::is_empty(&self.r#trailer) as usize,
1363				!Vec::is_empty(&self.r#about) as usize,
1364				!Vec::is_empty(&self.r#abstract) as usize,
1365				!Vec::is_empty(&self.r#access_mode) as usize,
1366				!Vec::is_empty(&self.r#access_mode_sufficient) as usize,
1367				!Vec::is_empty(&self.r#accessibility_api) as usize,
1368				!Vec::is_empty(&self.r#accessibility_control) as usize,
1369				!Vec::is_empty(&self.r#accessibility_feature) as usize,
1370				!Vec::is_empty(&self.r#accessibility_hazard) as usize,
1371				!Vec::is_empty(&self.r#accessibility_summary) as usize,
1372				!Vec::is_empty(&self.r#accountable_person) as usize,
1373				!Vec::is_empty(&self.r#acquire_license_page) as usize,
1374				!Vec::is_empty(&self.r#aggregate_rating) as usize,
1375				!Vec::is_empty(&self.r#alternative_headline) as usize,
1376				!Vec::is_empty(&self.r#archived_at) as usize,
1377				!Vec::is_empty(&self.r#assesses) as usize,
1378				!Vec::is_empty(&self.r#associated_media) as usize,
1379				!Vec::is_empty(&self.r#audience) as usize,
1380				!Vec::is_empty(&self.r#audio) as usize,
1381				!Vec::is_empty(&self.r#author) as usize,
1382				!Vec::is_empty(&self.r#award) as usize,
1383				!Vec::is_empty(&self.r#awards) as usize,
1384				!Vec::is_empty(&self.r#character) as usize,
1385				!Vec::is_empty(&self.r#citation) as usize,
1386				!Vec::is_empty(&self.r#comment) as usize,
1387				!Vec::is_empty(&self.r#comment_count) as usize,
1388				!Vec::is_empty(&self.r#conditions_of_access) as usize,
1389				!Vec::is_empty(&self.r#content_location) as usize,
1390				!Vec::is_empty(&self.r#content_rating) as usize,
1391				!Vec::is_empty(&self.r#content_reference_time) as usize,
1392				!Vec::is_empty(&self.r#contributor) as usize,
1393				!Vec::is_empty(&self.r#copyright_holder) as usize,
1394				!Vec::is_empty(&self.r#copyright_notice) as usize,
1395				!Vec::is_empty(&self.r#copyright_year) as usize,
1396				!Vec::is_empty(&self.r#correction) as usize,
1397				!Vec::is_empty(&self.r#country_of_origin) as usize,
1398				!Vec::is_empty(&self.r#creative_work_status) as usize,
1399				!Vec::is_empty(&self.r#creator) as usize,
1400				!Vec::is_empty(&self.r#credit_text) as usize,
1401				!Vec::is_empty(&self.r#date_created) as usize,
1402				!Vec::is_empty(&self.r#date_modified) as usize,
1403				!Vec::is_empty(&self.r#date_published) as usize,
1404				!Vec::is_empty(&self.r#discussion_url) as usize,
1405				!Vec::is_empty(&self.r#edit_eidr) as usize,
1406				!Vec::is_empty(&self.r#editor) as usize,
1407				!Vec::is_empty(&self.r#educational_alignment) as usize,
1408				!Vec::is_empty(&self.r#educational_level) as usize,
1409				!Vec::is_empty(&self.r#educational_use) as usize,
1410				!Vec::is_empty(&self.r#encoding) as usize,
1411				!Vec::is_empty(&self.r#encoding_format) as usize,
1412				!Vec::is_empty(&self.r#encodings) as usize,
1413				!Vec::is_empty(&self.r#example_of_work) as usize,
1414				!Vec::is_empty(&self.r#expires) as usize,
1415				!Vec::is_empty(&self.r#file_format) as usize,
1416				!Vec::is_empty(&self.r#funder) as usize,
1417				!Vec::is_empty(&self.r#funding) as usize,
1418				!Vec::is_empty(&self.r#genre) as usize,
1419				!Vec::is_empty(&self.r#has_part) as usize,
1420				!Vec::is_empty(&self.r#headline) as usize,
1421				!Vec::is_empty(&self.r#in_language) as usize,
1422				!Vec::is_empty(&self.r#interaction_statistic) as usize,
1423				!Vec::is_empty(&self.r#interactivity_type) as usize,
1424				!Vec::is_empty(&self.r#interpreted_as_claim) as usize,
1425				!Vec::is_empty(&self.r#is_accessible_for_free) as usize,
1426				!Vec::is_empty(&self.r#is_based_on) as usize,
1427				!Vec::is_empty(&self.r#is_based_on_url) as usize,
1428				!Vec::is_empty(&self.r#is_family_friendly) as usize,
1429				!Vec::is_empty(&self.r#is_part_of) as usize,
1430				!Vec::is_empty(&self.r#keywords) as usize,
1431				!Vec::is_empty(&self.r#learning_resource_type) as usize,
1432				!Vec::is_empty(&self.r#license) as usize,
1433				!Vec::is_empty(&self.r#location_created) as usize,
1434				!Vec::is_empty(&self.r#main_entity) as usize,
1435				!Vec::is_empty(&self.r#maintainer) as usize,
1436				!Vec::is_empty(&self.r#material) as usize,
1437				!Vec::is_empty(&self.r#material_extent) as usize,
1438				!Vec::is_empty(&self.r#mentions) as usize,
1439				!Vec::is_empty(&self.r#offers) as usize,
1440				!Vec::is_empty(&self.r#pattern) as usize,
1441				!Vec::is_empty(&self.r#position) as usize,
1442				!Vec::is_empty(&self.r#producer) as usize,
1443				!Vec::is_empty(&self.r#provider) as usize,
1444				!Vec::is_empty(&self.r#publication) as usize,
1445				!Vec::is_empty(&self.r#publisher) as usize,
1446				!Vec::is_empty(&self.r#publisher_imprint) as usize,
1447				!Vec::is_empty(&self.r#publishing_principles) as usize,
1448				!Vec::is_empty(&self.r#recorded_at) as usize,
1449				!Vec::is_empty(&self.r#released_event) as usize,
1450				!Vec::is_empty(&self.r#review) as usize,
1451				!Vec::is_empty(&self.r#reviews) as usize,
1452				!Vec::is_empty(&self.r#schema_version) as usize,
1453				!Vec::is_empty(&self.r#sd_date_published) as usize,
1454				!Vec::is_empty(&self.r#sd_license) as usize,
1455				!Vec::is_empty(&self.r#sd_publisher) as usize,
1456				!Vec::is_empty(&self.r#size) as usize,
1457				!Vec::is_empty(&self.r#source_organization) as usize,
1458				!Vec::is_empty(&self.r#spatial) as usize,
1459				!Vec::is_empty(&self.r#spatial_coverage) as usize,
1460				!Vec::is_empty(&self.r#sponsor) as usize,
1461				!Vec::is_empty(&self.r#teaches) as usize,
1462				!Vec::is_empty(&self.r#temporal) as usize,
1463				!Vec::is_empty(&self.r#temporal_coverage) as usize,
1464				!Vec::is_empty(&self.r#text) as usize,
1465				!Vec::is_empty(&self.r#thumbnail) as usize,
1466				!Vec::is_empty(&self.r#thumbnail_url) as usize,
1467				!Vec::is_empty(&self.r#time_required) as usize,
1468				!Vec::is_empty(&self.r#translation_of_work) as usize,
1469				!Vec::is_empty(&self.r#translator) as usize,
1470				!Vec::is_empty(&self.r#typical_age_range) as usize,
1471				!Vec::is_empty(&self.r#usage_info) as usize,
1472				!Vec::is_empty(&self.r#version) as usize,
1473				!Vec::is_empty(&self.r#video) as usize,
1474				!Vec::is_empty(&self.r#work_example) as usize,
1475				!Vec::is_empty(&self.r#work_translation) as usize,
1476				!Vec::is_empty(&self.r#end_date) as usize,
1477				!Vec::is_empty(&self.r#issn) as usize,
1478				!Vec::is_empty(&self.r#start_date) as usize,
1479				!Vec::is_empty(&self.r#additional_type) as usize,
1480				!Vec::is_empty(&self.r#alternate_name) as usize,
1481				!Vec::is_empty(&self.r#description) as usize,
1482				!Vec::is_empty(&self.r#disambiguating_description) as usize,
1483				!Vec::is_empty(&self.r#identifier) as usize,
1484				!Vec::is_empty(&self.r#image) as usize,
1485				!Vec::is_empty(&self.r#main_entity_of_page) as usize,
1486				!Vec::is_empty(&self.r#name) as usize,
1487				!Vec::is_empty(&self.r#potential_action) as usize,
1488				!Vec::is_empty(&self.r#same_as) as usize,
1489				!Vec::is_empty(&self.r#subject_of) as usize,
1490				!Vec::is_empty(&self.r#url) as usize,
1491			]
1492			.iter()
1493			.sum();
1494			let mut serialize_struct =
1495				Serializer::serialize_struct(serializer, "VideoGameSeries", len)?;
1496			if !Vec::is_empty(&self.r#actor) {
1497				serialize_struct.serialize_field("actor", {
1498					struct SerializeWith<'a>(&'a Vec<ActorProperty>);
1499					impl<'a> Serialize for SerializeWith<'a> {
1500						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1501						where
1502							S: Serializer,
1503						{
1504							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1505								self.0, serializer,
1506							)
1507						}
1508					}
1509					&SerializeWith(&self.r#actor)
1510				})?;
1511			} else {
1512				serialize_struct.skip_field("actor")?;
1513			}
1514			if !Vec::is_empty(&self.r#actors) {
1515				serialize_struct.serialize_field("actors", {
1516					struct SerializeWith<'a>(&'a Vec<ActorsProperty>);
1517					impl<'a> Serialize for SerializeWith<'a> {
1518						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1519						where
1520							S: Serializer,
1521						{
1522							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1523								self.0, serializer,
1524							)
1525						}
1526					}
1527					&SerializeWith(&self.r#actors)
1528				})?;
1529			} else {
1530				serialize_struct.skip_field("actors")?;
1531			}
1532			if !Vec::is_empty(&self.r#character_attribute) {
1533				serialize_struct.serialize_field("characterAttribute", {
1534					struct SerializeWith<'a>(&'a Vec<CharacterAttributeProperty>);
1535					impl<'a> Serialize for SerializeWith<'a> {
1536						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1537						where
1538							S: Serializer,
1539						{
1540							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1541								self.0, serializer,
1542							)
1543						}
1544					}
1545					&SerializeWith(&self.r#character_attribute)
1546				})?;
1547			} else {
1548				serialize_struct.skip_field("characterAttribute")?;
1549			}
1550			if !Vec::is_empty(&self.r#cheat_code) {
1551				serialize_struct.serialize_field("cheatCode", {
1552					struct SerializeWith<'a>(&'a Vec<CheatCodeProperty>);
1553					impl<'a> Serialize for SerializeWith<'a> {
1554						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1555						where
1556							S: Serializer,
1557						{
1558							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1559								self.0, serializer,
1560							)
1561						}
1562					}
1563					&SerializeWith(&self.r#cheat_code)
1564				})?;
1565			} else {
1566				serialize_struct.skip_field("cheatCode")?;
1567			}
1568			if !Vec::is_empty(&self.r#contains_season) {
1569				serialize_struct.serialize_field("containsSeason", {
1570					struct SerializeWith<'a>(&'a Vec<ContainsSeasonProperty>);
1571					impl<'a> Serialize for SerializeWith<'a> {
1572						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1573						where
1574							S: Serializer,
1575						{
1576							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1577								self.0, serializer,
1578							)
1579						}
1580					}
1581					&SerializeWith(&self.r#contains_season)
1582				})?;
1583			} else {
1584				serialize_struct.skip_field("containsSeason")?;
1585			}
1586			if !Vec::is_empty(&self.r#director) {
1587				serialize_struct.serialize_field("director", {
1588					struct SerializeWith<'a>(&'a Vec<DirectorProperty>);
1589					impl<'a> Serialize for SerializeWith<'a> {
1590						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1591						where
1592							S: Serializer,
1593						{
1594							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1595								self.0, serializer,
1596							)
1597						}
1598					}
1599					&SerializeWith(&self.r#director)
1600				})?;
1601			} else {
1602				serialize_struct.skip_field("director")?;
1603			}
1604			if !Vec::is_empty(&self.r#directors) {
1605				serialize_struct.serialize_field("directors", {
1606					struct SerializeWith<'a>(&'a Vec<DirectorsProperty>);
1607					impl<'a> Serialize for SerializeWith<'a> {
1608						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1609						where
1610							S: Serializer,
1611						{
1612							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1613								self.0, serializer,
1614							)
1615						}
1616					}
1617					&SerializeWith(&self.r#directors)
1618				})?;
1619			} else {
1620				serialize_struct.skip_field("directors")?;
1621			}
1622			if !Vec::is_empty(&self.r#episode) {
1623				serialize_struct.serialize_field("episode", {
1624					struct SerializeWith<'a>(&'a Vec<EpisodeProperty>);
1625					impl<'a> Serialize for SerializeWith<'a> {
1626						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1627						where
1628							S: Serializer,
1629						{
1630							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1631								self.0, serializer,
1632							)
1633						}
1634					}
1635					&SerializeWith(&self.r#episode)
1636				})?;
1637			} else {
1638				serialize_struct.skip_field("episode")?;
1639			}
1640			if !Vec::is_empty(&self.r#episodes) {
1641				serialize_struct.serialize_field("episodes", {
1642					struct SerializeWith<'a>(&'a Vec<EpisodesProperty>);
1643					impl<'a> Serialize for SerializeWith<'a> {
1644						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1645						where
1646							S: Serializer,
1647						{
1648							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1649								self.0, serializer,
1650							)
1651						}
1652					}
1653					&SerializeWith(&self.r#episodes)
1654				})?;
1655			} else {
1656				serialize_struct.skip_field("episodes")?;
1657			}
1658			if !Vec::is_empty(&self.r#game_item) {
1659				serialize_struct.serialize_field("gameItem", {
1660					struct SerializeWith<'a>(&'a Vec<GameItemProperty>);
1661					impl<'a> Serialize for SerializeWith<'a> {
1662						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1663						where
1664							S: Serializer,
1665						{
1666							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1667								self.0, serializer,
1668							)
1669						}
1670					}
1671					&SerializeWith(&self.r#game_item)
1672				})?;
1673			} else {
1674				serialize_struct.skip_field("gameItem")?;
1675			}
1676			if !Vec::is_empty(&self.r#game_location) {
1677				serialize_struct.serialize_field("gameLocation", {
1678					struct SerializeWith<'a>(&'a Vec<GameLocationProperty>);
1679					impl<'a> Serialize for SerializeWith<'a> {
1680						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1681						where
1682							S: Serializer,
1683						{
1684							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1685								self.0, serializer,
1686							)
1687						}
1688					}
1689					&SerializeWith(&self.r#game_location)
1690				})?;
1691			} else {
1692				serialize_struct.skip_field("gameLocation")?;
1693			}
1694			if !Vec::is_empty(&self.r#game_platform) {
1695				serialize_struct.serialize_field("gamePlatform", {
1696					struct SerializeWith<'a>(&'a Vec<GamePlatformProperty>);
1697					impl<'a> Serialize for SerializeWith<'a> {
1698						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1699						where
1700							S: Serializer,
1701						{
1702							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1703								self.0, serializer,
1704							)
1705						}
1706					}
1707					&SerializeWith(&self.r#game_platform)
1708				})?;
1709			} else {
1710				serialize_struct.skip_field("gamePlatform")?;
1711			}
1712			if !Vec::is_empty(&self.r#music_by) {
1713				serialize_struct.serialize_field("musicBy", {
1714					struct SerializeWith<'a>(&'a Vec<MusicByProperty>);
1715					impl<'a> Serialize for SerializeWith<'a> {
1716						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1717						where
1718							S: Serializer,
1719						{
1720							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1721								self.0, serializer,
1722							)
1723						}
1724					}
1725					&SerializeWith(&self.r#music_by)
1726				})?;
1727			} else {
1728				serialize_struct.skip_field("musicBy")?;
1729			}
1730			if !Vec::is_empty(&self.r#number_of_episodes) {
1731				serialize_struct.serialize_field("numberOfEpisodes", {
1732					struct SerializeWith<'a>(&'a Vec<NumberOfEpisodesProperty>);
1733					impl<'a> Serialize for SerializeWith<'a> {
1734						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1735						where
1736							S: Serializer,
1737						{
1738							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1739								self.0, serializer,
1740							)
1741						}
1742					}
1743					&SerializeWith(&self.r#number_of_episodes)
1744				})?;
1745			} else {
1746				serialize_struct.skip_field("numberOfEpisodes")?;
1747			}
1748			if !Vec::is_empty(&self.r#number_of_players) {
1749				serialize_struct.serialize_field("numberOfPlayers", {
1750					struct SerializeWith<'a>(&'a Vec<NumberOfPlayersProperty>);
1751					impl<'a> Serialize for SerializeWith<'a> {
1752						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1753						where
1754							S: Serializer,
1755						{
1756							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1757								self.0, serializer,
1758							)
1759						}
1760					}
1761					&SerializeWith(&self.r#number_of_players)
1762				})?;
1763			} else {
1764				serialize_struct.skip_field("numberOfPlayers")?;
1765			}
1766			if !Vec::is_empty(&self.r#number_of_seasons) {
1767				serialize_struct.serialize_field("numberOfSeasons", {
1768					struct SerializeWith<'a>(&'a Vec<NumberOfSeasonsProperty>);
1769					impl<'a> Serialize for SerializeWith<'a> {
1770						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1771						where
1772							S: Serializer,
1773						{
1774							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1775								self.0, serializer,
1776							)
1777						}
1778					}
1779					&SerializeWith(&self.r#number_of_seasons)
1780				})?;
1781			} else {
1782				serialize_struct.skip_field("numberOfSeasons")?;
1783			}
1784			if !Vec::is_empty(&self.r#play_mode) {
1785				serialize_struct.serialize_field("playMode", {
1786					struct SerializeWith<'a>(&'a Vec<PlayModeProperty>);
1787					impl<'a> Serialize for SerializeWith<'a> {
1788						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1789						where
1790							S: Serializer,
1791						{
1792							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1793								self.0, serializer,
1794							)
1795						}
1796					}
1797					&SerializeWith(&self.r#play_mode)
1798				})?;
1799			} else {
1800				serialize_struct.skip_field("playMode")?;
1801			}
1802			if !Vec::is_empty(&self.r#production_company) {
1803				serialize_struct.serialize_field("productionCompany", {
1804					struct SerializeWith<'a>(&'a Vec<ProductionCompanyProperty>);
1805					impl<'a> Serialize for SerializeWith<'a> {
1806						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1807						where
1808							S: Serializer,
1809						{
1810							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1811								self.0, serializer,
1812							)
1813						}
1814					}
1815					&SerializeWith(&self.r#production_company)
1816				})?;
1817			} else {
1818				serialize_struct.skip_field("productionCompany")?;
1819			}
1820			if !Vec::is_empty(&self.r#quest) {
1821				serialize_struct.serialize_field("quest", {
1822					struct SerializeWith<'a>(&'a Vec<QuestProperty>);
1823					impl<'a> Serialize for SerializeWith<'a> {
1824						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1825						where
1826							S: Serializer,
1827						{
1828							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1829								self.0, serializer,
1830							)
1831						}
1832					}
1833					&SerializeWith(&self.r#quest)
1834				})?;
1835			} else {
1836				serialize_struct.skip_field("quest")?;
1837			}
1838			if !Vec::is_empty(&self.r#season) {
1839				serialize_struct.serialize_field("season", {
1840					struct SerializeWith<'a>(&'a Vec<SeasonProperty>);
1841					impl<'a> Serialize for SerializeWith<'a> {
1842						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1843						where
1844							S: Serializer,
1845						{
1846							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1847								self.0, serializer,
1848							)
1849						}
1850					}
1851					&SerializeWith(&self.r#season)
1852				})?;
1853			} else {
1854				serialize_struct.skip_field("season")?;
1855			}
1856			if !Vec::is_empty(&self.r#seasons) {
1857				serialize_struct.serialize_field("seasons", {
1858					struct SerializeWith<'a>(&'a Vec<SeasonsProperty>);
1859					impl<'a> Serialize for SerializeWith<'a> {
1860						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1861						where
1862							S: Serializer,
1863						{
1864							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1865								self.0, serializer,
1866							)
1867						}
1868					}
1869					&SerializeWith(&self.r#seasons)
1870				})?;
1871			} else {
1872				serialize_struct.skip_field("seasons")?;
1873			}
1874			if !Vec::is_empty(&self.r#trailer) {
1875				serialize_struct.serialize_field("trailer", {
1876					struct SerializeWith<'a>(&'a Vec<TrailerProperty>);
1877					impl<'a> Serialize for SerializeWith<'a> {
1878						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1879						where
1880							S: Serializer,
1881						{
1882							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1883								self.0, serializer,
1884							)
1885						}
1886					}
1887					&SerializeWith(&self.r#trailer)
1888				})?;
1889			} else {
1890				serialize_struct.skip_field("trailer")?;
1891			}
1892			if !Vec::is_empty(&self.r#about) {
1893				serialize_struct.serialize_field("about", {
1894					struct SerializeWith<'a>(&'a Vec<AboutProperty>);
1895					impl<'a> Serialize for SerializeWith<'a> {
1896						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1897						where
1898							S: Serializer,
1899						{
1900							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1901								self.0, serializer,
1902							)
1903						}
1904					}
1905					&SerializeWith(&self.r#about)
1906				})?;
1907			} else {
1908				serialize_struct.skip_field("about")?;
1909			}
1910			if !Vec::is_empty(&self.r#abstract) {
1911				serialize_struct.serialize_field("abstract", {
1912					struct SerializeWith<'a>(&'a Vec<AbstractProperty>);
1913					impl<'a> Serialize for SerializeWith<'a> {
1914						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1915						where
1916							S: Serializer,
1917						{
1918							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1919								self.0, serializer,
1920							)
1921						}
1922					}
1923					&SerializeWith(&self.r#abstract)
1924				})?;
1925			} else {
1926				serialize_struct.skip_field("abstract")?;
1927			}
1928			if !Vec::is_empty(&self.r#access_mode) {
1929				serialize_struct.serialize_field("accessMode", {
1930					struct SerializeWith<'a>(&'a Vec<AccessModeProperty>);
1931					impl<'a> Serialize for SerializeWith<'a> {
1932						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1933						where
1934							S: Serializer,
1935						{
1936							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1937								self.0, serializer,
1938							)
1939						}
1940					}
1941					&SerializeWith(&self.r#access_mode)
1942				})?;
1943			} else {
1944				serialize_struct.skip_field("accessMode")?;
1945			}
1946			if !Vec::is_empty(&self.r#access_mode_sufficient) {
1947				serialize_struct.serialize_field("accessModeSufficient", {
1948					struct SerializeWith<'a>(&'a Vec<AccessModeSufficientProperty>);
1949					impl<'a> Serialize for SerializeWith<'a> {
1950						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1951						where
1952							S: Serializer,
1953						{
1954							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1955								self.0, serializer,
1956							)
1957						}
1958					}
1959					&SerializeWith(&self.r#access_mode_sufficient)
1960				})?;
1961			} else {
1962				serialize_struct.skip_field("accessModeSufficient")?;
1963			}
1964			if !Vec::is_empty(&self.r#accessibility_api) {
1965				serialize_struct.serialize_field("accessibilityAPI", {
1966					struct SerializeWith<'a>(&'a Vec<AccessibilityApiProperty>);
1967					impl<'a> Serialize for SerializeWith<'a> {
1968						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1969						where
1970							S: Serializer,
1971						{
1972							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1973								self.0, serializer,
1974							)
1975						}
1976					}
1977					&SerializeWith(&self.r#accessibility_api)
1978				})?;
1979			} else {
1980				serialize_struct.skip_field("accessibilityAPI")?;
1981			}
1982			if !Vec::is_empty(&self.r#accessibility_control) {
1983				serialize_struct.serialize_field("accessibilityControl", {
1984					struct SerializeWith<'a>(&'a Vec<AccessibilityControlProperty>);
1985					impl<'a> Serialize for SerializeWith<'a> {
1986						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1987						where
1988							S: Serializer,
1989						{
1990							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1991								self.0, serializer,
1992							)
1993						}
1994					}
1995					&SerializeWith(&self.r#accessibility_control)
1996				})?;
1997			} else {
1998				serialize_struct.skip_field("accessibilityControl")?;
1999			}
2000			if !Vec::is_empty(&self.r#accessibility_feature) {
2001				serialize_struct.serialize_field("accessibilityFeature", {
2002					struct SerializeWith<'a>(&'a Vec<AccessibilityFeatureProperty>);
2003					impl<'a> Serialize for SerializeWith<'a> {
2004						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2005						where
2006							S: Serializer,
2007						{
2008							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2009								self.0, serializer,
2010							)
2011						}
2012					}
2013					&SerializeWith(&self.r#accessibility_feature)
2014				})?;
2015			} else {
2016				serialize_struct.skip_field("accessibilityFeature")?;
2017			}
2018			if !Vec::is_empty(&self.r#accessibility_hazard) {
2019				serialize_struct.serialize_field("accessibilityHazard", {
2020					struct SerializeWith<'a>(&'a Vec<AccessibilityHazardProperty>);
2021					impl<'a> Serialize for SerializeWith<'a> {
2022						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2023						where
2024							S: Serializer,
2025						{
2026							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2027								self.0, serializer,
2028							)
2029						}
2030					}
2031					&SerializeWith(&self.r#accessibility_hazard)
2032				})?;
2033			} else {
2034				serialize_struct.skip_field("accessibilityHazard")?;
2035			}
2036			if !Vec::is_empty(&self.r#accessibility_summary) {
2037				serialize_struct.serialize_field("accessibilitySummary", {
2038					struct SerializeWith<'a>(&'a Vec<AccessibilitySummaryProperty>);
2039					impl<'a> Serialize for SerializeWith<'a> {
2040						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2041						where
2042							S: Serializer,
2043						{
2044							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2045								self.0, serializer,
2046							)
2047						}
2048					}
2049					&SerializeWith(&self.r#accessibility_summary)
2050				})?;
2051			} else {
2052				serialize_struct.skip_field("accessibilitySummary")?;
2053			}
2054			if !Vec::is_empty(&self.r#accountable_person) {
2055				serialize_struct.serialize_field("accountablePerson", {
2056					struct SerializeWith<'a>(&'a Vec<AccountablePersonProperty>);
2057					impl<'a> Serialize for SerializeWith<'a> {
2058						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2059						where
2060							S: Serializer,
2061						{
2062							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2063								self.0, serializer,
2064							)
2065						}
2066					}
2067					&SerializeWith(&self.r#accountable_person)
2068				})?;
2069			} else {
2070				serialize_struct.skip_field("accountablePerson")?;
2071			}
2072			if !Vec::is_empty(&self.r#acquire_license_page) {
2073				serialize_struct.serialize_field("acquireLicensePage", {
2074					struct SerializeWith<'a>(&'a Vec<AcquireLicensePageProperty>);
2075					impl<'a> Serialize for SerializeWith<'a> {
2076						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2077						where
2078							S: Serializer,
2079						{
2080							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2081								self.0, serializer,
2082							)
2083						}
2084					}
2085					&SerializeWith(&self.r#acquire_license_page)
2086				})?;
2087			} else {
2088				serialize_struct.skip_field("acquireLicensePage")?;
2089			}
2090			if !Vec::is_empty(&self.r#aggregate_rating) {
2091				serialize_struct.serialize_field("aggregateRating", {
2092					struct SerializeWith<'a>(&'a Vec<AggregateRatingProperty>);
2093					impl<'a> Serialize for SerializeWith<'a> {
2094						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2095						where
2096							S: Serializer,
2097						{
2098							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2099								self.0, serializer,
2100							)
2101						}
2102					}
2103					&SerializeWith(&self.r#aggregate_rating)
2104				})?;
2105			} else {
2106				serialize_struct.skip_field("aggregateRating")?;
2107			}
2108			if !Vec::is_empty(&self.r#alternative_headline) {
2109				serialize_struct.serialize_field("alternativeHeadline", {
2110					struct SerializeWith<'a>(&'a Vec<AlternativeHeadlineProperty>);
2111					impl<'a> Serialize for SerializeWith<'a> {
2112						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2113						where
2114							S: Serializer,
2115						{
2116							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2117								self.0, serializer,
2118							)
2119						}
2120					}
2121					&SerializeWith(&self.r#alternative_headline)
2122				})?;
2123			} else {
2124				serialize_struct.skip_field("alternativeHeadline")?;
2125			}
2126			if !Vec::is_empty(&self.r#archived_at) {
2127				serialize_struct.serialize_field("archivedAt", {
2128					struct SerializeWith<'a>(&'a Vec<ArchivedAtProperty>);
2129					impl<'a> Serialize for SerializeWith<'a> {
2130						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2131						where
2132							S: Serializer,
2133						{
2134							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2135								self.0, serializer,
2136							)
2137						}
2138					}
2139					&SerializeWith(&self.r#archived_at)
2140				})?;
2141			} else {
2142				serialize_struct.skip_field("archivedAt")?;
2143			}
2144			if !Vec::is_empty(&self.r#assesses) {
2145				serialize_struct.serialize_field("assesses", {
2146					struct SerializeWith<'a>(&'a Vec<AssessesProperty>);
2147					impl<'a> Serialize for SerializeWith<'a> {
2148						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2149						where
2150							S: Serializer,
2151						{
2152							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2153								self.0, serializer,
2154							)
2155						}
2156					}
2157					&SerializeWith(&self.r#assesses)
2158				})?;
2159			} else {
2160				serialize_struct.skip_field("assesses")?;
2161			}
2162			if !Vec::is_empty(&self.r#associated_media) {
2163				serialize_struct.serialize_field("associatedMedia", {
2164					struct SerializeWith<'a>(&'a Vec<AssociatedMediaProperty>);
2165					impl<'a> Serialize for SerializeWith<'a> {
2166						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2167						where
2168							S: Serializer,
2169						{
2170							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2171								self.0, serializer,
2172							)
2173						}
2174					}
2175					&SerializeWith(&self.r#associated_media)
2176				})?;
2177			} else {
2178				serialize_struct.skip_field("associatedMedia")?;
2179			}
2180			if !Vec::is_empty(&self.r#audience) {
2181				serialize_struct.serialize_field("audience", {
2182					struct SerializeWith<'a>(&'a Vec<AudienceProperty>);
2183					impl<'a> Serialize for SerializeWith<'a> {
2184						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2185						where
2186							S: Serializer,
2187						{
2188							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2189								self.0, serializer,
2190							)
2191						}
2192					}
2193					&SerializeWith(&self.r#audience)
2194				})?;
2195			} else {
2196				serialize_struct.skip_field("audience")?;
2197			}
2198			if !Vec::is_empty(&self.r#audio) {
2199				serialize_struct.serialize_field("audio", {
2200					struct SerializeWith<'a>(&'a Vec<AudioProperty>);
2201					impl<'a> Serialize for SerializeWith<'a> {
2202						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2203						where
2204							S: Serializer,
2205						{
2206							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2207								self.0, serializer,
2208							)
2209						}
2210					}
2211					&SerializeWith(&self.r#audio)
2212				})?;
2213			} else {
2214				serialize_struct.skip_field("audio")?;
2215			}
2216			if !Vec::is_empty(&self.r#author) {
2217				serialize_struct.serialize_field("author", {
2218					struct SerializeWith<'a>(&'a Vec<AuthorProperty>);
2219					impl<'a> Serialize for SerializeWith<'a> {
2220						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2221						where
2222							S: Serializer,
2223						{
2224							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2225								self.0, serializer,
2226							)
2227						}
2228					}
2229					&SerializeWith(&self.r#author)
2230				})?;
2231			} else {
2232				serialize_struct.skip_field("author")?;
2233			}
2234			if !Vec::is_empty(&self.r#award) {
2235				serialize_struct.serialize_field("award", {
2236					struct SerializeWith<'a>(&'a Vec<AwardProperty>);
2237					impl<'a> Serialize for SerializeWith<'a> {
2238						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2239						where
2240							S: Serializer,
2241						{
2242							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2243								self.0, serializer,
2244							)
2245						}
2246					}
2247					&SerializeWith(&self.r#award)
2248				})?;
2249			} else {
2250				serialize_struct.skip_field("award")?;
2251			}
2252			if !Vec::is_empty(&self.r#awards) {
2253				serialize_struct.serialize_field("awards", {
2254					struct SerializeWith<'a>(&'a Vec<AwardsProperty>);
2255					impl<'a> Serialize for SerializeWith<'a> {
2256						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2257						where
2258							S: Serializer,
2259						{
2260							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2261								self.0, serializer,
2262							)
2263						}
2264					}
2265					&SerializeWith(&self.r#awards)
2266				})?;
2267			} else {
2268				serialize_struct.skip_field("awards")?;
2269			}
2270			if !Vec::is_empty(&self.r#character) {
2271				serialize_struct.serialize_field("character", {
2272					struct SerializeWith<'a>(&'a Vec<CharacterProperty>);
2273					impl<'a> Serialize for SerializeWith<'a> {
2274						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2275						where
2276							S: Serializer,
2277						{
2278							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2279								self.0, serializer,
2280							)
2281						}
2282					}
2283					&SerializeWith(&self.r#character)
2284				})?;
2285			} else {
2286				serialize_struct.skip_field("character")?;
2287			}
2288			if !Vec::is_empty(&self.r#citation) {
2289				serialize_struct.serialize_field("citation", {
2290					struct SerializeWith<'a>(&'a Vec<CitationProperty>);
2291					impl<'a> Serialize for SerializeWith<'a> {
2292						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2293						where
2294							S: Serializer,
2295						{
2296							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2297								self.0, serializer,
2298							)
2299						}
2300					}
2301					&SerializeWith(&self.r#citation)
2302				})?;
2303			} else {
2304				serialize_struct.skip_field("citation")?;
2305			}
2306			if !Vec::is_empty(&self.r#comment) {
2307				serialize_struct.serialize_field("comment", {
2308					struct SerializeWith<'a>(&'a Vec<CommentProperty>);
2309					impl<'a> Serialize for SerializeWith<'a> {
2310						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2311						where
2312							S: Serializer,
2313						{
2314							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2315								self.0, serializer,
2316							)
2317						}
2318					}
2319					&SerializeWith(&self.r#comment)
2320				})?;
2321			} else {
2322				serialize_struct.skip_field("comment")?;
2323			}
2324			if !Vec::is_empty(&self.r#comment_count) {
2325				serialize_struct.serialize_field("commentCount", {
2326					struct SerializeWith<'a>(&'a Vec<CommentCountProperty>);
2327					impl<'a> Serialize for SerializeWith<'a> {
2328						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2329						where
2330							S: Serializer,
2331						{
2332							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2333								self.0, serializer,
2334							)
2335						}
2336					}
2337					&SerializeWith(&self.r#comment_count)
2338				})?;
2339			} else {
2340				serialize_struct.skip_field("commentCount")?;
2341			}
2342			if !Vec::is_empty(&self.r#conditions_of_access) {
2343				serialize_struct.serialize_field("conditionsOfAccess", {
2344					struct SerializeWith<'a>(&'a Vec<ConditionsOfAccessProperty>);
2345					impl<'a> Serialize for SerializeWith<'a> {
2346						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2347						where
2348							S: Serializer,
2349						{
2350							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2351								self.0, serializer,
2352							)
2353						}
2354					}
2355					&SerializeWith(&self.r#conditions_of_access)
2356				})?;
2357			} else {
2358				serialize_struct.skip_field("conditionsOfAccess")?;
2359			}
2360			if !Vec::is_empty(&self.r#content_location) {
2361				serialize_struct.serialize_field("contentLocation", {
2362					struct SerializeWith<'a>(&'a Vec<ContentLocationProperty>);
2363					impl<'a> Serialize for SerializeWith<'a> {
2364						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2365						where
2366							S: Serializer,
2367						{
2368							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2369								self.0, serializer,
2370							)
2371						}
2372					}
2373					&SerializeWith(&self.r#content_location)
2374				})?;
2375			} else {
2376				serialize_struct.skip_field("contentLocation")?;
2377			}
2378			if !Vec::is_empty(&self.r#content_rating) {
2379				serialize_struct.serialize_field("contentRating", {
2380					struct SerializeWith<'a>(&'a Vec<ContentRatingProperty>);
2381					impl<'a> Serialize for SerializeWith<'a> {
2382						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2383						where
2384							S: Serializer,
2385						{
2386							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2387								self.0, serializer,
2388							)
2389						}
2390					}
2391					&SerializeWith(&self.r#content_rating)
2392				})?;
2393			} else {
2394				serialize_struct.skip_field("contentRating")?;
2395			}
2396			if !Vec::is_empty(&self.r#content_reference_time) {
2397				serialize_struct.serialize_field("contentReferenceTime", {
2398					struct SerializeWith<'a>(&'a Vec<ContentReferenceTimeProperty>);
2399					impl<'a> Serialize for SerializeWith<'a> {
2400						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2401						where
2402							S: Serializer,
2403						{
2404							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2405								self.0, serializer,
2406							)
2407						}
2408					}
2409					&SerializeWith(&self.r#content_reference_time)
2410				})?;
2411			} else {
2412				serialize_struct.skip_field("contentReferenceTime")?;
2413			}
2414			if !Vec::is_empty(&self.r#contributor) {
2415				serialize_struct.serialize_field("contributor", {
2416					struct SerializeWith<'a>(&'a Vec<ContributorProperty>);
2417					impl<'a> Serialize for SerializeWith<'a> {
2418						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2419						where
2420							S: Serializer,
2421						{
2422							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2423								self.0, serializer,
2424							)
2425						}
2426					}
2427					&SerializeWith(&self.r#contributor)
2428				})?;
2429			} else {
2430				serialize_struct.skip_field("contributor")?;
2431			}
2432			if !Vec::is_empty(&self.r#copyright_holder) {
2433				serialize_struct.serialize_field("copyrightHolder", {
2434					struct SerializeWith<'a>(&'a Vec<CopyrightHolderProperty>);
2435					impl<'a> Serialize for SerializeWith<'a> {
2436						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2437						where
2438							S: Serializer,
2439						{
2440							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2441								self.0, serializer,
2442							)
2443						}
2444					}
2445					&SerializeWith(&self.r#copyright_holder)
2446				})?;
2447			} else {
2448				serialize_struct.skip_field("copyrightHolder")?;
2449			}
2450			if !Vec::is_empty(&self.r#copyright_notice) {
2451				serialize_struct.serialize_field("copyrightNotice", {
2452					struct SerializeWith<'a>(&'a Vec<CopyrightNoticeProperty>);
2453					impl<'a> Serialize for SerializeWith<'a> {
2454						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2455						where
2456							S: Serializer,
2457						{
2458							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2459								self.0, serializer,
2460							)
2461						}
2462					}
2463					&SerializeWith(&self.r#copyright_notice)
2464				})?;
2465			} else {
2466				serialize_struct.skip_field("copyrightNotice")?;
2467			}
2468			if !Vec::is_empty(&self.r#copyright_year) {
2469				serialize_struct.serialize_field("copyrightYear", {
2470					struct SerializeWith<'a>(&'a Vec<CopyrightYearProperty>);
2471					impl<'a> Serialize for SerializeWith<'a> {
2472						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2473						where
2474							S: Serializer,
2475						{
2476							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2477								self.0, serializer,
2478							)
2479						}
2480					}
2481					&SerializeWith(&self.r#copyright_year)
2482				})?;
2483			} else {
2484				serialize_struct.skip_field("copyrightYear")?;
2485			}
2486			if !Vec::is_empty(&self.r#correction) {
2487				serialize_struct.serialize_field("correction", {
2488					struct SerializeWith<'a>(&'a Vec<CorrectionProperty>);
2489					impl<'a> Serialize for SerializeWith<'a> {
2490						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2491						where
2492							S: Serializer,
2493						{
2494							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2495								self.0, serializer,
2496							)
2497						}
2498					}
2499					&SerializeWith(&self.r#correction)
2500				})?;
2501			} else {
2502				serialize_struct.skip_field("correction")?;
2503			}
2504			if !Vec::is_empty(&self.r#country_of_origin) {
2505				serialize_struct.serialize_field("countryOfOrigin", {
2506					struct SerializeWith<'a>(&'a Vec<CountryOfOriginProperty>);
2507					impl<'a> Serialize for SerializeWith<'a> {
2508						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2509						where
2510							S: Serializer,
2511						{
2512							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2513								self.0, serializer,
2514							)
2515						}
2516					}
2517					&SerializeWith(&self.r#country_of_origin)
2518				})?;
2519			} else {
2520				serialize_struct.skip_field("countryOfOrigin")?;
2521			}
2522			if !Vec::is_empty(&self.r#creative_work_status) {
2523				serialize_struct.serialize_field("creativeWorkStatus", {
2524					struct SerializeWith<'a>(&'a Vec<CreativeWorkStatusProperty>);
2525					impl<'a> Serialize for SerializeWith<'a> {
2526						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2527						where
2528							S: Serializer,
2529						{
2530							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2531								self.0, serializer,
2532							)
2533						}
2534					}
2535					&SerializeWith(&self.r#creative_work_status)
2536				})?;
2537			} else {
2538				serialize_struct.skip_field("creativeWorkStatus")?;
2539			}
2540			if !Vec::is_empty(&self.r#creator) {
2541				serialize_struct.serialize_field("creator", {
2542					struct SerializeWith<'a>(&'a Vec<CreatorProperty>);
2543					impl<'a> Serialize for SerializeWith<'a> {
2544						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2545						where
2546							S: Serializer,
2547						{
2548							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2549								self.0, serializer,
2550							)
2551						}
2552					}
2553					&SerializeWith(&self.r#creator)
2554				})?;
2555			} else {
2556				serialize_struct.skip_field("creator")?;
2557			}
2558			if !Vec::is_empty(&self.r#credit_text) {
2559				serialize_struct.serialize_field("creditText", {
2560					struct SerializeWith<'a>(&'a Vec<CreditTextProperty>);
2561					impl<'a> Serialize for SerializeWith<'a> {
2562						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2563						where
2564							S: Serializer,
2565						{
2566							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2567								self.0, serializer,
2568							)
2569						}
2570					}
2571					&SerializeWith(&self.r#credit_text)
2572				})?;
2573			} else {
2574				serialize_struct.skip_field("creditText")?;
2575			}
2576			if !Vec::is_empty(&self.r#date_created) {
2577				serialize_struct.serialize_field("dateCreated", {
2578					struct SerializeWith<'a>(&'a Vec<DateCreatedProperty>);
2579					impl<'a> Serialize for SerializeWith<'a> {
2580						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2581						where
2582							S: Serializer,
2583						{
2584							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2585								self.0, serializer,
2586							)
2587						}
2588					}
2589					&SerializeWith(&self.r#date_created)
2590				})?;
2591			} else {
2592				serialize_struct.skip_field("dateCreated")?;
2593			}
2594			if !Vec::is_empty(&self.r#date_modified) {
2595				serialize_struct.serialize_field("dateModified", {
2596					struct SerializeWith<'a>(&'a Vec<DateModifiedProperty>);
2597					impl<'a> Serialize for SerializeWith<'a> {
2598						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2599						where
2600							S: Serializer,
2601						{
2602							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2603								self.0, serializer,
2604							)
2605						}
2606					}
2607					&SerializeWith(&self.r#date_modified)
2608				})?;
2609			} else {
2610				serialize_struct.skip_field("dateModified")?;
2611			}
2612			if !Vec::is_empty(&self.r#date_published) {
2613				serialize_struct.serialize_field("datePublished", {
2614					struct SerializeWith<'a>(&'a Vec<DatePublishedProperty>);
2615					impl<'a> Serialize for SerializeWith<'a> {
2616						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2617						where
2618							S: Serializer,
2619						{
2620							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2621								self.0, serializer,
2622							)
2623						}
2624					}
2625					&SerializeWith(&self.r#date_published)
2626				})?;
2627			} else {
2628				serialize_struct.skip_field("datePublished")?;
2629			}
2630			if !Vec::is_empty(&self.r#discussion_url) {
2631				serialize_struct.serialize_field("discussionUrl", {
2632					struct SerializeWith<'a>(&'a Vec<DiscussionUrlProperty>);
2633					impl<'a> Serialize for SerializeWith<'a> {
2634						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2635						where
2636							S: Serializer,
2637						{
2638							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2639								self.0, serializer,
2640							)
2641						}
2642					}
2643					&SerializeWith(&self.r#discussion_url)
2644				})?;
2645			} else {
2646				serialize_struct.skip_field("discussionUrl")?;
2647			}
2648			if !Vec::is_empty(&self.r#edit_eidr) {
2649				serialize_struct.serialize_field("editEIDR", {
2650					struct SerializeWith<'a>(&'a Vec<EditEidrProperty>);
2651					impl<'a> Serialize for SerializeWith<'a> {
2652						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2653						where
2654							S: Serializer,
2655						{
2656							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2657								self.0, serializer,
2658							)
2659						}
2660					}
2661					&SerializeWith(&self.r#edit_eidr)
2662				})?;
2663			} else {
2664				serialize_struct.skip_field("editEIDR")?;
2665			}
2666			if !Vec::is_empty(&self.r#editor) {
2667				serialize_struct.serialize_field("editor", {
2668					struct SerializeWith<'a>(&'a Vec<EditorProperty>);
2669					impl<'a> Serialize for SerializeWith<'a> {
2670						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2671						where
2672							S: Serializer,
2673						{
2674							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2675								self.0, serializer,
2676							)
2677						}
2678					}
2679					&SerializeWith(&self.r#editor)
2680				})?;
2681			} else {
2682				serialize_struct.skip_field("editor")?;
2683			}
2684			if !Vec::is_empty(&self.r#educational_alignment) {
2685				serialize_struct.serialize_field("educationalAlignment", {
2686					struct SerializeWith<'a>(&'a Vec<EducationalAlignmentProperty>);
2687					impl<'a> Serialize for SerializeWith<'a> {
2688						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2689						where
2690							S: Serializer,
2691						{
2692							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2693								self.0, serializer,
2694							)
2695						}
2696					}
2697					&SerializeWith(&self.r#educational_alignment)
2698				})?;
2699			} else {
2700				serialize_struct.skip_field("educationalAlignment")?;
2701			}
2702			if !Vec::is_empty(&self.r#educational_level) {
2703				serialize_struct.serialize_field("educationalLevel", {
2704					struct SerializeWith<'a>(&'a Vec<EducationalLevelProperty>);
2705					impl<'a> Serialize for SerializeWith<'a> {
2706						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2707						where
2708							S: Serializer,
2709						{
2710							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2711								self.0, serializer,
2712							)
2713						}
2714					}
2715					&SerializeWith(&self.r#educational_level)
2716				})?;
2717			} else {
2718				serialize_struct.skip_field("educationalLevel")?;
2719			}
2720			if !Vec::is_empty(&self.r#educational_use) {
2721				serialize_struct.serialize_field("educationalUse", {
2722					struct SerializeWith<'a>(&'a Vec<EducationalUseProperty>);
2723					impl<'a> Serialize for SerializeWith<'a> {
2724						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2725						where
2726							S: Serializer,
2727						{
2728							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2729								self.0, serializer,
2730							)
2731						}
2732					}
2733					&SerializeWith(&self.r#educational_use)
2734				})?;
2735			} else {
2736				serialize_struct.skip_field("educationalUse")?;
2737			}
2738			if !Vec::is_empty(&self.r#encoding) {
2739				serialize_struct.serialize_field("encoding", {
2740					struct SerializeWith<'a>(&'a Vec<EncodingProperty>);
2741					impl<'a> Serialize for SerializeWith<'a> {
2742						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2743						where
2744							S: Serializer,
2745						{
2746							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2747								self.0, serializer,
2748							)
2749						}
2750					}
2751					&SerializeWith(&self.r#encoding)
2752				})?;
2753			} else {
2754				serialize_struct.skip_field("encoding")?;
2755			}
2756			if !Vec::is_empty(&self.r#encoding_format) {
2757				serialize_struct.serialize_field("encodingFormat", {
2758					struct SerializeWith<'a>(&'a Vec<EncodingFormatProperty>);
2759					impl<'a> Serialize for SerializeWith<'a> {
2760						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2761						where
2762							S: Serializer,
2763						{
2764							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2765								self.0, serializer,
2766							)
2767						}
2768					}
2769					&SerializeWith(&self.r#encoding_format)
2770				})?;
2771			} else {
2772				serialize_struct.skip_field("encodingFormat")?;
2773			}
2774			if !Vec::is_empty(&self.r#encodings) {
2775				serialize_struct.serialize_field("encodings", {
2776					struct SerializeWith<'a>(&'a Vec<EncodingsProperty>);
2777					impl<'a> Serialize for SerializeWith<'a> {
2778						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2779						where
2780							S: Serializer,
2781						{
2782							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2783								self.0, serializer,
2784							)
2785						}
2786					}
2787					&SerializeWith(&self.r#encodings)
2788				})?;
2789			} else {
2790				serialize_struct.skip_field("encodings")?;
2791			}
2792			if !Vec::is_empty(&self.r#example_of_work) {
2793				serialize_struct.serialize_field("exampleOfWork", {
2794					struct SerializeWith<'a>(&'a Vec<ExampleOfWorkProperty>);
2795					impl<'a> Serialize for SerializeWith<'a> {
2796						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2797						where
2798							S: Serializer,
2799						{
2800							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2801								self.0, serializer,
2802							)
2803						}
2804					}
2805					&SerializeWith(&self.r#example_of_work)
2806				})?;
2807			} else {
2808				serialize_struct.skip_field("exampleOfWork")?;
2809			}
2810			if !Vec::is_empty(&self.r#expires) {
2811				serialize_struct.serialize_field("expires", {
2812					struct SerializeWith<'a>(&'a Vec<ExpiresProperty>);
2813					impl<'a> Serialize for SerializeWith<'a> {
2814						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2815						where
2816							S: Serializer,
2817						{
2818							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2819								self.0, serializer,
2820							)
2821						}
2822					}
2823					&SerializeWith(&self.r#expires)
2824				})?;
2825			} else {
2826				serialize_struct.skip_field("expires")?;
2827			}
2828			if !Vec::is_empty(&self.r#file_format) {
2829				serialize_struct.serialize_field("fileFormat", {
2830					struct SerializeWith<'a>(&'a Vec<FileFormatProperty>);
2831					impl<'a> Serialize for SerializeWith<'a> {
2832						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2833						where
2834							S: Serializer,
2835						{
2836							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2837								self.0, serializer,
2838							)
2839						}
2840					}
2841					&SerializeWith(&self.r#file_format)
2842				})?;
2843			} else {
2844				serialize_struct.skip_field("fileFormat")?;
2845			}
2846			if !Vec::is_empty(&self.r#funder) {
2847				serialize_struct.serialize_field("funder", {
2848					struct SerializeWith<'a>(&'a Vec<FunderProperty>);
2849					impl<'a> Serialize for SerializeWith<'a> {
2850						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2851						where
2852							S: Serializer,
2853						{
2854							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2855								self.0, serializer,
2856							)
2857						}
2858					}
2859					&SerializeWith(&self.r#funder)
2860				})?;
2861			} else {
2862				serialize_struct.skip_field("funder")?;
2863			}
2864			if !Vec::is_empty(&self.r#funding) {
2865				serialize_struct.serialize_field("funding", {
2866					struct SerializeWith<'a>(&'a Vec<FundingProperty>);
2867					impl<'a> Serialize for SerializeWith<'a> {
2868						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2869						where
2870							S: Serializer,
2871						{
2872							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2873								self.0, serializer,
2874							)
2875						}
2876					}
2877					&SerializeWith(&self.r#funding)
2878				})?;
2879			} else {
2880				serialize_struct.skip_field("funding")?;
2881			}
2882			if !Vec::is_empty(&self.r#genre) {
2883				serialize_struct.serialize_field("genre", {
2884					struct SerializeWith<'a>(&'a Vec<GenreProperty>);
2885					impl<'a> Serialize for SerializeWith<'a> {
2886						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2887						where
2888							S: Serializer,
2889						{
2890							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2891								self.0, serializer,
2892							)
2893						}
2894					}
2895					&SerializeWith(&self.r#genre)
2896				})?;
2897			} else {
2898				serialize_struct.skip_field("genre")?;
2899			}
2900			if !Vec::is_empty(&self.r#has_part) {
2901				serialize_struct.serialize_field("hasPart", {
2902					struct SerializeWith<'a>(&'a Vec<HasPartProperty>);
2903					impl<'a> Serialize for SerializeWith<'a> {
2904						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2905						where
2906							S: Serializer,
2907						{
2908							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2909								self.0, serializer,
2910							)
2911						}
2912					}
2913					&SerializeWith(&self.r#has_part)
2914				})?;
2915			} else {
2916				serialize_struct.skip_field("hasPart")?;
2917			}
2918			if !Vec::is_empty(&self.r#headline) {
2919				serialize_struct.serialize_field("headline", {
2920					struct SerializeWith<'a>(&'a Vec<HeadlineProperty>);
2921					impl<'a> Serialize for SerializeWith<'a> {
2922						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2923						where
2924							S: Serializer,
2925						{
2926							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2927								self.0, serializer,
2928							)
2929						}
2930					}
2931					&SerializeWith(&self.r#headline)
2932				})?;
2933			} else {
2934				serialize_struct.skip_field("headline")?;
2935			}
2936			if !Vec::is_empty(&self.r#in_language) {
2937				serialize_struct.serialize_field("inLanguage", {
2938					struct SerializeWith<'a>(&'a Vec<InLanguageProperty>);
2939					impl<'a> Serialize for SerializeWith<'a> {
2940						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2941						where
2942							S: Serializer,
2943						{
2944							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2945								self.0, serializer,
2946							)
2947						}
2948					}
2949					&SerializeWith(&self.r#in_language)
2950				})?;
2951			} else {
2952				serialize_struct.skip_field("inLanguage")?;
2953			}
2954			if !Vec::is_empty(&self.r#interaction_statistic) {
2955				serialize_struct.serialize_field("interactionStatistic", {
2956					struct SerializeWith<'a>(&'a Vec<InteractionStatisticProperty>);
2957					impl<'a> Serialize for SerializeWith<'a> {
2958						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2959						where
2960							S: Serializer,
2961						{
2962							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2963								self.0, serializer,
2964							)
2965						}
2966					}
2967					&SerializeWith(&self.r#interaction_statistic)
2968				})?;
2969			} else {
2970				serialize_struct.skip_field("interactionStatistic")?;
2971			}
2972			if !Vec::is_empty(&self.r#interactivity_type) {
2973				serialize_struct.serialize_field("interactivityType", {
2974					struct SerializeWith<'a>(&'a Vec<InteractivityTypeProperty>);
2975					impl<'a> Serialize for SerializeWith<'a> {
2976						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2977						where
2978							S: Serializer,
2979						{
2980							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2981								self.0, serializer,
2982							)
2983						}
2984					}
2985					&SerializeWith(&self.r#interactivity_type)
2986				})?;
2987			} else {
2988				serialize_struct.skip_field("interactivityType")?;
2989			}
2990			if !Vec::is_empty(&self.r#interpreted_as_claim) {
2991				serialize_struct.serialize_field("interpretedAsClaim", {
2992					struct SerializeWith<'a>(&'a Vec<InterpretedAsClaimProperty>);
2993					impl<'a> Serialize for SerializeWith<'a> {
2994						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2995						where
2996							S: Serializer,
2997						{
2998							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2999								self.0, serializer,
3000							)
3001						}
3002					}
3003					&SerializeWith(&self.r#interpreted_as_claim)
3004				})?;
3005			} else {
3006				serialize_struct.skip_field("interpretedAsClaim")?;
3007			}
3008			if !Vec::is_empty(&self.r#is_accessible_for_free) {
3009				serialize_struct.serialize_field("isAccessibleForFree", {
3010					struct SerializeWith<'a>(&'a Vec<IsAccessibleForFreeProperty>);
3011					impl<'a> Serialize for SerializeWith<'a> {
3012						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3013						where
3014							S: Serializer,
3015						{
3016							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3017								self.0, serializer,
3018							)
3019						}
3020					}
3021					&SerializeWith(&self.r#is_accessible_for_free)
3022				})?;
3023			} else {
3024				serialize_struct.skip_field("isAccessibleForFree")?;
3025			}
3026			if !Vec::is_empty(&self.r#is_based_on) {
3027				serialize_struct.serialize_field("isBasedOn", {
3028					struct SerializeWith<'a>(&'a Vec<IsBasedOnProperty>);
3029					impl<'a> Serialize for SerializeWith<'a> {
3030						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3031						where
3032							S: Serializer,
3033						{
3034							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3035								self.0, serializer,
3036							)
3037						}
3038					}
3039					&SerializeWith(&self.r#is_based_on)
3040				})?;
3041			} else {
3042				serialize_struct.skip_field("isBasedOn")?;
3043			}
3044			if !Vec::is_empty(&self.r#is_based_on_url) {
3045				serialize_struct.serialize_field("isBasedOnUrl", {
3046					struct SerializeWith<'a>(&'a Vec<IsBasedOnUrlProperty>);
3047					impl<'a> Serialize for SerializeWith<'a> {
3048						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3049						where
3050							S: Serializer,
3051						{
3052							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3053								self.0, serializer,
3054							)
3055						}
3056					}
3057					&SerializeWith(&self.r#is_based_on_url)
3058				})?;
3059			} else {
3060				serialize_struct.skip_field("isBasedOnUrl")?;
3061			}
3062			if !Vec::is_empty(&self.r#is_family_friendly) {
3063				serialize_struct.serialize_field("isFamilyFriendly", {
3064					struct SerializeWith<'a>(&'a Vec<IsFamilyFriendlyProperty>);
3065					impl<'a> Serialize for SerializeWith<'a> {
3066						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3067						where
3068							S: Serializer,
3069						{
3070							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3071								self.0, serializer,
3072							)
3073						}
3074					}
3075					&SerializeWith(&self.r#is_family_friendly)
3076				})?;
3077			} else {
3078				serialize_struct.skip_field("isFamilyFriendly")?;
3079			}
3080			if !Vec::is_empty(&self.r#is_part_of) {
3081				serialize_struct.serialize_field("isPartOf", {
3082					struct SerializeWith<'a>(&'a Vec<IsPartOfProperty>);
3083					impl<'a> Serialize for SerializeWith<'a> {
3084						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3085						where
3086							S: Serializer,
3087						{
3088							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3089								self.0, serializer,
3090							)
3091						}
3092					}
3093					&SerializeWith(&self.r#is_part_of)
3094				})?;
3095			} else {
3096				serialize_struct.skip_field("isPartOf")?;
3097			}
3098			if !Vec::is_empty(&self.r#keywords) {
3099				serialize_struct.serialize_field("keywords", {
3100					struct SerializeWith<'a>(&'a Vec<KeywordsProperty>);
3101					impl<'a> Serialize for SerializeWith<'a> {
3102						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3103						where
3104							S: Serializer,
3105						{
3106							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3107								self.0, serializer,
3108							)
3109						}
3110					}
3111					&SerializeWith(&self.r#keywords)
3112				})?;
3113			} else {
3114				serialize_struct.skip_field("keywords")?;
3115			}
3116			if !Vec::is_empty(&self.r#learning_resource_type) {
3117				serialize_struct.serialize_field("learningResourceType", {
3118					struct SerializeWith<'a>(&'a Vec<LearningResourceTypeProperty>);
3119					impl<'a> Serialize for SerializeWith<'a> {
3120						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3121						where
3122							S: Serializer,
3123						{
3124							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3125								self.0, serializer,
3126							)
3127						}
3128					}
3129					&SerializeWith(&self.r#learning_resource_type)
3130				})?;
3131			} else {
3132				serialize_struct.skip_field("learningResourceType")?;
3133			}
3134			if !Vec::is_empty(&self.r#license) {
3135				serialize_struct.serialize_field("license", {
3136					struct SerializeWith<'a>(&'a Vec<LicenseProperty>);
3137					impl<'a> Serialize for SerializeWith<'a> {
3138						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3139						where
3140							S: Serializer,
3141						{
3142							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3143								self.0, serializer,
3144							)
3145						}
3146					}
3147					&SerializeWith(&self.r#license)
3148				})?;
3149			} else {
3150				serialize_struct.skip_field("license")?;
3151			}
3152			if !Vec::is_empty(&self.r#location_created) {
3153				serialize_struct.serialize_field("locationCreated", {
3154					struct SerializeWith<'a>(&'a Vec<LocationCreatedProperty>);
3155					impl<'a> Serialize for SerializeWith<'a> {
3156						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3157						where
3158							S: Serializer,
3159						{
3160							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3161								self.0, serializer,
3162							)
3163						}
3164					}
3165					&SerializeWith(&self.r#location_created)
3166				})?;
3167			} else {
3168				serialize_struct.skip_field("locationCreated")?;
3169			}
3170			if !Vec::is_empty(&self.r#main_entity) {
3171				serialize_struct.serialize_field("mainEntity", {
3172					struct SerializeWith<'a>(&'a Vec<MainEntityProperty>);
3173					impl<'a> Serialize for SerializeWith<'a> {
3174						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3175						where
3176							S: Serializer,
3177						{
3178							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3179								self.0, serializer,
3180							)
3181						}
3182					}
3183					&SerializeWith(&self.r#main_entity)
3184				})?;
3185			} else {
3186				serialize_struct.skip_field("mainEntity")?;
3187			}
3188			if !Vec::is_empty(&self.r#maintainer) {
3189				serialize_struct.serialize_field("maintainer", {
3190					struct SerializeWith<'a>(&'a Vec<MaintainerProperty>);
3191					impl<'a> Serialize for SerializeWith<'a> {
3192						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3193						where
3194							S: Serializer,
3195						{
3196							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3197								self.0, serializer,
3198							)
3199						}
3200					}
3201					&SerializeWith(&self.r#maintainer)
3202				})?;
3203			} else {
3204				serialize_struct.skip_field("maintainer")?;
3205			}
3206			if !Vec::is_empty(&self.r#material) {
3207				serialize_struct.serialize_field("material", {
3208					struct SerializeWith<'a>(&'a Vec<MaterialProperty>);
3209					impl<'a> Serialize for SerializeWith<'a> {
3210						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3211						where
3212							S: Serializer,
3213						{
3214							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3215								self.0, serializer,
3216							)
3217						}
3218					}
3219					&SerializeWith(&self.r#material)
3220				})?;
3221			} else {
3222				serialize_struct.skip_field("material")?;
3223			}
3224			if !Vec::is_empty(&self.r#material_extent) {
3225				serialize_struct.serialize_field("materialExtent", {
3226					struct SerializeWith<'a>(&'a Vec<MaterialExtentProperty>);
3227					impl<'a> Serialize for SerializeWith<'a> {
3228						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3229						where
3230							S: Serializer,
3231						{
3232							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3233								self.0, serializer,
3234							)
3235						}
3236					}
3237					&SerializeWith(&self.r#material_extent)
3238				})?;
3239			} else {
3240				serialize_struct.skip_field("materialExtent")?;
3241			}
3242			if !Vec::is_empty(&self.r#mentions) {
3243				serialize_struct.serialize_field("mentions", {
3244					struct SerializeWith<'a>(&'a Vec<MentionsProperty>);
3245					impl<'a> Serialize for SerializeWith<'a> {
3246						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3247						where
3248							S: Serializer,
3249						{
3250							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3251								self.0, serializer,
3252							)
3253						}
3254					}
3255					&SerializeWith(&self.r#mentions)
3256				})?;
3257			} else {
3258				serialize_struct.skip_field("mentions")?;
3259			}
3260			if !Vec::is_empty(&self.r#offers) {
3261				serialize_struct.serialize_field("offers", {
3262					struct SerializeWith<'a>(&'a Vec<OffersProperty>);
3263					impl<'a> Serialize for SerializeWith<'a> {
3264						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3265						where
3266							S: Serializer,
3267						{
3268							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3269								self.0, serializer,
3270							)
3271						}
3272					}
3273					&SerializeWith(&self.r#offers)
3274				})?;
3275			} else {
3276				serialize_struct.skip_field("offers")?;
3277			}
3278			if !Vec::is_empty(&self.r#pattern) {
3279				serialize_struct.serialize_field("pattern", {
3280					struct SerializeWith<'a>(&'a Vec<PatternProperty>);
3281					impl<'a> Serialize for SerializeWith<'a> {
3282						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3283						where
3284							S: Serializer,
3285						{
3286							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3287								self.0, serializer,
3288							)
3289						}
3290					}
3291					&SerializeWith(&self.r#pattern)
3292				})?;
3293			} else {
3294				serialize_struct.skip_field("pattern")?;
3295			}
3296			if !Vec::is_empty(&self.r#position) {
3297				serialize_struct.serialize_field("position", {
3298					struct SerializeWith<'a>(&'a Vec<PositionProperty>);
3299					impl<'a> Serialize for SerializeWith<'a> {
3300						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3301						where
3302							S: Serializer,
3303						{
3304							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3305								self.0, serializer,
3306							)
3307						}
3308					}
3309					&SerializeWith(&self.r#position)
3310				})?;
3311			} else {
3312				serialize_struct.skip_field("position")?;
3313			}
3314			if !Vec::is_empty(&self.r#producer) {
3315				serialize_struct.serialize_field("producer", {
3316					struct SerializeWith<'a>(&'a Vec<ProducerProperty>);
3317					impl<'a> Serialize for SerializeWith<'a> {
3318						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3319						where
3320							S: Serializer,
3321						{
3322							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3323								self.0, serializer,
3324							)
3325						}
3326					}
3327					&SerializeWith(&self.r#producer)
3328				})?;
3329			} else {
3330				serialize_struct.skip_field("producer")?;
3331			}
3332			if !Vec::is_empty(&self.r#provider) {
3333				serialize_struct.serialize_field("provider", {
3334					struct SerializeWith<'a>(&'a Vec<ProviderProperty>);
3335					impl<'a> Serialize for SerializeWith<'a> {
3336						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3337						where
3338							S: Serializer,
3339						{
3340							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3341								self.0, serializer,
3342							)
3343						}
3344					}
3345					&SerializeWith(&self.r#provider)
3346				})?;
3347			} else {
3348				serialize_struct.skip_field("provider")?;
3349			}
3350			if !Vec::is_empty(&self.r#publication) {
3351				serialize_struct.serialize_field("publication", {
3352					struct SerializeWith<'a>(&'a Vec<PublicationProperty>);
3353					impl<'a> Serialize for SerializeWith<'a> {
3354						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3355						where
3356							S: Serializer,
3357						{
3358							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3359								self.0, serializer,
3360							)
3361						}
3362					}
3363					&SerializeWith(&self.r#publication)
3364				})?;
3365			} else {
3366				serialize_struct.skip_field("publication")?;
3367			}
3368			if !Vec::is_empty(&self.r#publisher) {
3369				serialize_struct.serialize_field("publisher", {
3370					struct SerializeWith<'a>(&'a Vec<PublisherProperty>);
3371					impl<'a> Serialize for SerializeWith<'a> {
3372						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3373						where
3374							S: Serializer,
3375						{
3376							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3377								self.0, serializer,
3378							)
3379						}
3380					}
3381					&SerializeWith(&self.r#publisher)
3382				})?;
3383			} else {
3384				serialize_struct.skip_field("publisher")?;
3385			}
3386			if !Vec::is_empty(&self.r#publisher_imprint) {
3387				serialize_struct.serialize_field("publisherImprint", {
3388					struct SerializeWith<'a>(&'a Vec<PublisherImprintProperty>);
3389					impl<'a> Serialize for SerializeWith<'a> {
3390						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3391						where
3392							S: Serializer,
3393						{
3394							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3395								self.0, serializer,
3396							)
3397						}
3398					}
3399					&SerializeWith(&self.r#publisher_imprint)
3400				})?;
3401			} else {
3402				serialize_struct.skip_field("publisherImprint")?;
3403			}
3404			if !Vec::is_empty(&self.r#publishing_principles) {
3405				serialize_struct.serialize_field("publishingPrinciples", {
3406					struct SerializeWith<'a>(&'a Vec<PublishingPrinciplesProperty>);
3407					impl<'a> Serialize for SerializeWith<'a> {
3408						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3409						where
3410							S: Serializer,
3411						{
3412							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3413								self.0, serializer,
3414							)
3415						}
3416					}
3417					&SerializeWith(&self.r#publishing_principles)
3418				})?;
3419			} else {
3420				serialize_struct.skip_field("publishingPrinciples")?;
3421			}
3422			if !Vec::is_empty(&self.r#recorded_at) {
3423				serialize_struct.serialize_field("recordedAt", {
3424					struct SerializeWith<'a>(&'a Vec<RecordedAtProperty>);
3425					impl<'a> Serialize for SerializeWith<'a> {
3426						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3427						where
3428							S: Serializer,
3429						{
3430							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3431								self.0, serializer,
3432							)
3433						}
3434					}
3435					&SerializeWith(&self.r#recorded_at)
3436				})?;
3437			} else {
3438				serialize_struct.skip_field("recordedAt")?;
3439			}
3440			if !Vec::is_empty(&self.r#released_event) {
3441				serialize_struct.serialize_field("releasedEvent", {
3442					struct SerializeWith<'a>(&'a Vec<ReleasedEventProperty>);
3443					impl<'a> Serialize for SerializeWith<'a> {
3444						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3445						where
3446							S: Serializer,
3447						{
3448							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3449								self.0, serializer,
3450							)
3451						}
3452					}
3453					&SerializeWith(&self.r#released_event)
3454				})?;
3455			} else {
3456				serialize_struct.skip_field("releasedEvent")?;
3457			}
3458			if !Vec::is_empty(&self.r#review) {
3459				serialize_struct.serialize_field("review", {
3460					struct SerializeWith<'a>(&'a Vec<ReviewProperty>);
3461					impl<'a> Serialize for SerializeWith<'a> {
3462						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3463						where
3464							S: Serializer,
3465						{
3466							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3467								self.0, serializer,
3468							)
3469						}
3470					}
3471					&SerializeWith(&self.r#review)
3472				})?;
3473			} else {
3474				serialize_struct.skip_field("review")?;
3475			}
3476			if !Vec::is_empty(&self.r#reviews) {
3477				serialize_struct.serialize_field("reviews", {
3478					struct SerializeWith<'a>(&'a Vec<ReviewsProperty>);
3479					impl<'a> Serialize for SerializeWith<'a> {
3480						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3481						where
3482							S: Serializer,
3483						{
3484							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3485								self.0, serializer,
3486							)
3487						}
3488					}
3489					&SerializeWith(&self.r#reviews)
3490				})?;
3491			} else {
3492				serialize_struct.skip_field("reviews")?;
3493			}
3494			if !Vec::is_empty(&self.r#schema_version) {
3495				serialize_struct.serialize_field("schemaVersion", {
3496					struct SerializeWith<'a>(&'a Vec<SchemaVersionProperty>);
3497					impl<'a> Serialize for SerializeWith<'a> {
3498						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3499						where
3500							S: Serializer,
3501						{
3502							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3503								self.0, serializer,
3504							)
3505						}
3506					}
3507					&SerializeWith(&self.r#schema_version)
3508				})?;
3509			} else {
3510				serialize_struct.skip_field("schemaVersion")?;
3511			}
3512			if !Vec::is_empty(&self.r#sd_date_published) {
3513				serialize_struct.serialize_field("sdDatePublished", {
3514					struct SerializeWith<'a>(&'a Vec<SdDatePublishedProperty>);
3515					impl<'a> Serialize for SerializeWith<'a> {
3516						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3517						where
3518							S: Serializer,
3519						{
3520							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3521								self.0, serializer,
3522							)
3523						}
3524					}
3525					&SerializeWith(&self.r#sd_date_published)
3526				})?;
3527			} else {
3528				serialize_struct.skip_field("sdDatePublished")?;
3529			}
3530			if !Vec::is_empty(&self.r#sd_license) {
3531				serialize_struct.serialize_field("sdLicense", {
3532					struct SerializeWith<'a>(&'a Vec<SdLicenseProperty>);
3533					impl<'a> Serialize for SerializeWith<'a> {
3534						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3535						where
3536							S: Serializer,
3537						{
3538							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3539								self.0, serializer,
3540							)
3541						}
3542					}
3543					&SerializeWith(&self.r#sd_license)
3544				})?;
3545			} else {
3546				serialize_struct.skip_field("sdLicense")?;
3547			}
3548			if !Vec::is_empty(&self.r#sd_publisher) {
3549				serialize_struct.serialize_field("sdPublisher", {
3550					struct SerializeWith<'a>(&'a Vec<SdPublisherProperty>);
3551					impl<'a> Serialize for SerializeWith<'a> {
3552						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3553						where
3554							S: Serializer,
3555						{
3556							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3557								self.0, serializer,
3558							)
3559						}
3560					}
3561					&SerializeWith(&self.r#sd_publisher)
3562				})?;
3563			} else {
3564				serialize_struct.skip_field("sdPublisher")?;
3565			}
3566			if !Vec::is_empty(&self.r#size) {
3567				serialize_struct.serialize_field("size", {
3568					struct SerializeWith<'a>(&'a Vec<SizeProperty>);
3569					impl<'a> Serialize for SerializeWith<'a> {
3570						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3571						where
3572							S: Serializer,
3573						{
3574							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3575								self.0, serializer,
3576							)
3577						}
3578					}
3579					&SerializeWith(&self.r#size)
3580				})?;
3581			} else {
3582				serialize_struct.skip_field("size")?;
3583			}
3584			if !Vec::is_empty(&self.r#source_organization) {
3585				serialize_struct.serialize_field("sourceOrganization", {
3586					struct SerializeWith<'a>(&'a Vec<SourceOrganizationProperty>);
3587					impl<'a> Serialize for SerializeWith<'a> {
3588						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3589						where
3590							S: Serializer,
3591						{
3592							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3593								self.0, serializer,
3594							)
3595						}
3596					}
3597					&SerializeWith(&self.r#source_organization)
3598				})?;
3599			} else {
3600				serialize_struct.skip_field("sourceOrganization")?;
3601			}
3602			if !Vec::is_empty(&self.r#spatial) {
3603				serialize_struct.serialize_field("spatial", {
3604					struct SerializeWith<'a>(&'a Vec<SpatialProperty>);
3605					impl<'a> Serialize for SerializeWith<'a> {
3606						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3607						where
3608							S: Serializer,
3609						{
3610							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3611								self.0, serializer,
3612							)
3613						}
3614					}
3615					&SerializeWith(&self.r#spatial)
3616				})?;
3617			} else {
3618				serialize_struct.skip_field("spatial")?;
3619			}
3620			if !Vec::is_empty(&self.r#spatial_coverage) {
3621				serialize_struct.serialize_field("spatialCoverage", {
3622					struct SerializeWith<'a>(&'a Vec<SpatialCoverageProperty>);
3623					impl<'a> Serialize for SerializeWith<'a> {
3624						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3625						where
3626							S: Serializer,
3627						{
3628							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3629								self.0, serializer,
3630							)
3631						}
3632					}
3633					&SerializeWith(&self.r#spatial_coverage)
3634				})?;
3635			} else {
3636				serialize_struct.skip_field("spatialCoverage")?;
3637			}
3638			if !Vec::is_empty(&self.r#sponsor) {
3639				serialize_struct.serialize_field("sponsor", {
3640					struct SerializeWith<'a>(&'a Vec<SponsorProperty>);
3641					impl<'a> Serialize for SerializeWith<'a> {
3642						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3643						where
3644							S: Serializer,
3645						{
3646							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3647								self.0, serializer,
3648							)
3649						}
3650					}
3651					&SerializeWith(&self.r#sponsor)
3652				})?;
3653			} else {
3654				serialize_struct.skip_field("sponsor")?;
3655			}
3656			if !Vec::is_empty(&self.r#teaches) {
3657				serialize_struct.serialize_field("teaches", {
3658					struct SerializeWith<'a>(&'a Vec<TeachesProperty>);
3659					impl<'a> Serialize for SerializeWith<'a> {
3660						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3661						where
3662							S: Serializer,
3663						{
3664							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3665								self.0, serializer,
3666							)
3667						}
3668					}
3669					&SerializeWith(&self.r#teaches)
3670				})?;
3671			} else {
3672				serialize_struct.skip_field("teaches")?;
3673			}
3674			if !Vec::is_empty(&self.r#temporal) {
3675				serialize_struct.serialize_field("temporal", {
3676					struct SerializeWith<'a>(&'a Vec<TemporalProperty>);
3677					impl<'a> Serialize for SerializeWith<'a> {
3678						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3679						where
3680							S: Serializer,
3681						{
3682							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3683								self.0, serializer,
3684							)
3685						}
3686					}
3687					&SerializeWith(&self.r#temporal)
3688				})?;
3689			} else {
3690				serialize_struct.skip_field("temporal")?;
3691			}
3692			if !Vec::is_empty(&self.r#temporal_coverage) {
3693				serialize_struct.serialize_field("temporalCoverage", {
3694					struct SerializeWith<'a>(&'a Vec<TemporalCoverageProperty>);
3695					impl<'a> Serialize for SerializeWith<'a> {
3696						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3697						where
3698							S: Serializer,
3699						{
3700							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3701								self.0, serializer,
3702							)
3703						}
3704					}
3705					&SerializeWith(&self.r#temporal_coverage)
3706				})?;
3707			} else {
3708				serialize_struct.skip_field("temporalCoverage")?;
3709			}
3710			if !Vec::is_empty(&self.r#text) {
3711				serialize_struct.serialize_field("text", {
3712					struct SerializeWith<'a>(&'a Vec<TextProperty>);
3713					impl<'a> Serialize for SerializeWith<'a> {
3714						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3715						where
3716							S: Serializer,
3717						{
3718							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3719								self.0, serializer,
3720							)
3721						}
3722					}
3723					&SerializeWith(&self.r#text)
3724				})?;
3725			} else {
3726				serialize_struct.skip_field("text")?;
3727			}
3728			if !Vec::is_empty(&self.r#thumbnail) {
3729				serialize_struct.serialize_field("thumbnail", {
3730					struct SerializeWith<'a>(&'a Vec<ThumbnailProperty>);
3731					impl<'a> Serialize for SerializeWith<'a> {
3732						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3733						where
3734							S: Serializer,
3735						{
3736							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3737								self.0, serializer,
3738							)
3739						}
3740					}
3741					&SerializeWith(&self.r#thumbnail)
3742				})?;
3743			} else {
3744				serialize_struct.skip_field("thumbnail")?;
3745			}
3746			if !Vec::is_empty(&self.r#thumbnail_url) {
3747				serialize_struct.serialize_field("thumbnailUrl", {
3748					struct SerializeWith<'a>(&'a Vec<ThumbnailUrlProperty>);
3749					impl<'a> Serialize for SerializeWith<'a> {
3750						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3751						where
3752							S: Serializer,
3753						{
3754							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3755								self.0, serializer,
3756							)
3757						}
3758					}
3759					&SerializeWith(&self.r#thumbnail_url)
3760				})?;
3761			} else {
3762				serialize_struct.skip_field("thumbnailUrl")?;
3763			}
3764			if !Vec::is_empty(&self.r#time_required) {
3765				serialize_struct.serialize_field("timeRequired", {
3766					struct SerializeWith<'a>(&'a Vec<TimeRequiredProperty>);
3767					impl<'a> Serialize for SerializeWith<'a> {
3768						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3769						where
3770							S: Serializer,
3771						{
3772							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3773								self.0, serializer,
3774							)
3775						}
3776					}
3777					&SerializeWith(&self.r#time_required)
3778				})?;
3779			} else {
3780				serialize_struct.skip_field("timeRequired")?;
3781			}
3782			if !Vec::is_empty(&self.r#translation_of_work) {
3783				serialize_struct.serialize_field("translationOfWork", {
3784					struct SerializeWith<'a>(&'a Vec<TranslationOfWorkProperty>);
3785					impl<'a> Serialize for SerializeWith<'a> {
3786						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3787						where
3788							S: Serializer,
3789						{
3790							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3791								self.0, serializer,
3792							)
3793						}
3794					}
3795					&SerializeWith(&self.r#translation_of_work)
3796				})?;
3797			} else {
3798				serialize_struct.skip_field("translationOfWork")?;
3799			}
3800			if !Vec::is_empty(&self.r#translator) {
3801				serialize_struct.serialize_field("translator", {
3802					struct SerializeWith<'a>(&'a Vec<TranslatorProperty>);
3803					impl<'a> Serialize for SerializeWith<'a> {
3804						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3805						where
3806							S: Serializer,
3807						{
3808							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3809								self.0, serializer,
3810							)
3811						}
3812					}
3813					&SerializeWith(&self.r#translator)
3814				})?;
3815			} else {
3816				serialize_struct.skip_field("translator")?;
3817			}
3818			if !Vec::is_empty(&self.r#typical_age_range) {
3819				serialize_struct.serialize_field("typicalAgeRange", {
3820					struct SerializeWith<'a>(&'a Vec<TypicalAgeRangeProperty>);
3821					impl<'a> Serialize for SerializeWith<'a> {
3822						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3823						where
3824							S: Serializer,
3825						{
3826							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3827								self.0, serializer,
3828							)
3829						}
3830					}
3831					&SerializeWith(&self.r#typical_age_range)
3832				})?;
3833			} else {
3834				serialize_struct.skip_field("typicalAgeRange")?;
3835			}
3836			if !Vec::is_empty(&self.r#usage_info) {
3837				serialize_struct.serialize_field("usageInfo", {
3838					struct SerializeWith<'a>(&'a Vec<UsageInfoProperty>);
3839					impl<'a> Serialize for SerializeWith<'a> {
3840						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3841						where
3842							S: Serializer,
3843						{
3844							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3845								self.0, serializer,
3846							)
3847						}
3848					}
3849					&SerializeWith(&self.r#usage_info)
3850				})?;
3851			} else {
3852				serialize_struct.skip_field("usageInfo")?;
3853			}
3854			if !Vec::is_empty(&self.r#version) {
3855				serialize_struct.serialize_field("version", {
3856					struct SerializeWith<'a>(&'a Vec<VersionProperty>);
3857					impl<'a> Serialize for SerializeWith<'a> {
3858						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3859						where
3860							S: Serializer,
3861						{
3862							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3863								self.0, serializer,
3864							)
3865						}
3866					}
3867					&SerializeWith(&self.r#version)
3868				})?;
3869			} else {
3870				serialize_struct.skip_field("version")?;
3871			}
3872			if !Vec::is_empty(&self.r#video) {
3873				serialize_struct.serialize_field("video", {
3874					struct SerializeWith<'a>(&'a Vec<VideoProperty>);
3875					impl<'a> Serialize for SerializeWith<'a> {
3876						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3877						where
3878							S: Serializer,
3879						{
3880							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3881								self.0, serializer,
3882							)
3883						}
3884					}
3885					&SerializeWith(&self.r#video)
3886				})?;
3887			} else {
3888				serialize_struct.skip_field("video")?;
3889			}
3890			if !Vec::is_empty(&self.r#work_example) {
3891				serialize_struct.serialize_field("workExample", {
3892					struct SerializeWith<'a>(&'a Vec<WorkExampleProperty>);
3893					impl<'a> Serialize for SerializeWith<'a> {
3894						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3895						where
3896							S: Serializer,
3897						{
3898							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3899								self.0, serializer,
3900							)
3901						}
3902					}
3903					&SerializeWith(&self.r#work_example)
3904				})?;
3905			} else {
3906				serialize_struct.skip_field("workExample")?;
3907			}
3908			if !Vec::is_empty(&self.r#work_translation) {
3909				serialize_struct.serialize_field("workTranslation", {
3910					struct SerializeWith<'a>(&'a Vec<WorkTranslationProperty>);
3911					impl<'a> Serialize for SerializeWith<'a> {
3912						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3913						where
3914							S: Serializer,
3915						{
3916							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3917								self.0, serializer,
3918							)
3919						}
3920					}
3921					&SerializeWith(&self.r#work_translation)
3922				})?;
3923			} else {
3924				serialize_struct.skip_field("workTranslation")?;
3925			}
3926			if !Vec::is_empty(&self.r#end_date) {
3927				serialize_struct.serialize_field("endDate", {
3928					struct SerializeWith<'a>(&'a Vec<EndDateProperty>);
3929					impl<'a> Serialize for SerializeWith<'a> {
3930						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3931						where
3932							S: Serializer,
3933						{
3934							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3935								self.0, serializer,
3936							)
3937						}
3938					}
3939					&SerializeWith(&self.r#end_date)
3940				})?;
3941			} else {
3942				serialize_struct.skip_field("endDate")?;
3943			}
3944			if !Vec::is_empty(&self.r#issn) {
3945				serialize_struct.serialize_field("issn", {
3946					struct SerializeWith<'a>(&'a Vec<IssnProperty>);
3947					impl<'a> Serialize for SerializeWith<'a> {
3948						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3949						where
3950							S: Serializer,
3951						{
3952							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3953								self.0, serializer,
3954							)
3955						}
3956					}
3957					&SerializeWith(&self.r#issn)
3958				})?;
3959			} else {
3960				serialize_struct.skip_field("issn")?;
3961			}
3962			if !Vec::is_empty(&self.r#start_date) {
3963				serialize_struct.serialize_field("startDate", {
3964					struct SerializeWith<'a>(&'a Vec<StartDateProperty>);
3965					impl<'a> Serialize for SerializeWith<'a> {
3966						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3967						where
3968							S: Serializer,
3969						{
3970							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3971								self.0, serializer,
3972							)
3973						}
3974					}
3975					&SerializeWith(&self.r#start_date)
3976				})?;
3977			} else {
3978				serialize_struct.skip_field("startDate")?;
3979			}
3980			if !Vec::is_empty(&self.r#additional_type) {
3981				serialize_struct.serialize_field("additionalType", {
3982					struct SerializeWith<'a>(&'a Vec<AdditionalTypeProperty>);
3983					impl<'a> Serialize for SerializeWith<'a> {
3984						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3985						where
3986							S: Serializer,
3987						{
3988							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3989								self.0, serializer,
3990							)
3991						}
3992					}
3993					&SerializeWith(&self.r#additional_type)
3994				})?;
3995			} else {
3996				serialize_struct.skip_field("additionalType")?;
3997			}
3998			if !Vec::is_empty(&self.r#alternate_name) {
3999				serialize_struct.serialize_field("alternateName", {
4000					struct SerializeWith<'a>(&'a Vec<AlternateNameProperty>);
4001					impl<'a> Serialize for SerializeWith<'a> {
4002						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4003						where
4004							S: Serializer,
4005						{
4006							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
4007								self.0, serializer,
4008							)
4009						}
4010					}
4011					&SerializeWith(&self.r#alternate_name)
4012				})?;
4013			} else {
4014				serialize_struct.skip_field("alternateName")?;
4015			}
4016			if !Vec::is_empty(&self.r#description) {
4017				serialize_struct.serialize_field("description", {
4018					struct SerializeWith<'a>(&'a Vec<DescriptionProperty>);
4019					impl<'a> Serialize for SerializeWith<'a> {
4020						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4021						where
4022							S: Serializer,
4023						{
4024							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
4025								self.0, serializer,
4026							)
4027						}
4028					}
4029					&SerializeWith(&self.r#description)
4030				})?;
4031			} else {
4032				serialize_struct.skip_field("description")?;
4033			}
4034			if !Vec::is_empty(&self.r#disambiguating_description) {
4035				serialize_struct.serialize_field("disambiguatingDescription", {
4036					struct SerializeWith<'a>(&'a Vec<DisambiguatingDescriptionProperty>);
4037					impl<'a> Serialize for SerializeWith<'a> {
4038						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4039						where
4040							S: Serializer,
4041						{
4042							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
4043								self.0, serializer,
4044							)
4045						}
4046					}
4047					&SerializeWith(&self.r#disambiguating_description)
4048				})?;
4049			} else {
4050				serialize_struct.skip_field("disambiguatingDescription")?;
4051			}
4052			if !Vec::is_empty(&self.r#identifier) {
4053				serialize_struct.serialize_field("identifier", {
4054					struct SerializeWith<'a>(&'a Vec<IdentifierProperty>);
4055					impl<'a> Serialize for SerializeWith<'a> {
4056						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4057						where
4058							S: Serializer,
4059						{
4060							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
4061								self.0, serializer,
4062							)
4063						}
4064					}
4065					&SerializeWith(&self.r#identifier)
4066				})?;
4067			} else {
4068				serialize_struct.skip_field("identifier")?;
4069			}
4070			if !Vec::is_empty(&self.r#image) {
4071				serialize_struct.serialize_field("image", {
4072					struct SerializeWith<'a>(&'a Vec<ImageProperty>);
4073					impl<'a> Serialize for SerializeWith<'a> {
4074						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4075						where
4076							S: Serializer,
4077						{
4078							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
4079								self.0, serializer,
4080							)
4081						}
4082					}
4083					&SerializeWith(&self.r#image)
4084				})?;
4085			} else {
4086				serialize_struct.skip_field("image")?;
4087			}
4088			if !Vec::is_empty(&self.r#main_entity_of_page) {
4089				serialize_struct.serialize_field("mainEntityOfPage", {
4090					struct SerializeWith<'a>(&'a Vec<MainEntityOfPageProperty>);
4091					impl<'a> Serialize for SerializeWith<'a> {
4092						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4093						where
4094							S: Serializer,
4095						{
4096							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
4097								self.0, serializer,
4098							)
4099						}
4100					}
4101					&SerializeWith(&self.r#main_entity_of_page)
4102				})?;
4103			} else {
4104				serialize_struct.skip_field("mainEntityOfPage")?;
4105			}
4106			if !Vec::is_empty(&self.r#name) {
4107				serialize_struct.serialize_field("name", {
4108					struct SerializeWith<'a>(&'a Vec<NameProperty>);
4109					impl<'a> Serialize for SerializeWith<'a> {
4110						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4111						where
4112							S: Serializer,
4113						{
4114							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
4115								self.0, serializer,
4116							)
4117						}
4118					}
4119					&SerializeWith(&self.r#name)
4120				})?;
4121			} else {
4122				serialize_struct.skip_field("name")?;
4123			}
4124			if !Vec::is_empty(&self.r#potential_action) {
4125				serialize_struct.serialize_field("potentialAction", {
4126					struct SerializeWith<'a>(&'a Vec<PotentialActionProperty>);
4127					impl<'a> Serialize for SerializeWith<'a> {
4128						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4129						where
4130							S: Serializer,
4131						{
4132							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
4133								self.0, serializer,
4134							)
4135						}
4136					}
4137					&SerializeWith(&self.r#potential_action)
4138				})?;
4139			} else {
4140				serialize_struct.skip_field("potentialAction")?;
4141			}
4142			if !Vec::is_empty(&self.r#same_as) {
4143				serialize_struct.serialize_field("sameAs", {
4144					struct SerializeWith<'a>(&'a Vec<SameAsProperty>);
4145					impl<'a> Serialize for SerializeWith<'a> {
4146						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4147						where
4148							S: Serializer,
4149						{
4150							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
4151								self.0, serializer,
4152							)
4153						}
4154					}
4155					&SerializeWith(&self.r#same_as)
4156				})?;
4157			} else {
4158				serialize_struct.skip_field("sameAs")?;
4159			}
4160			if !Vec::is_empty(&self.r#subject_of) {
4161				serialize_struct.serialize_field("subjectOf", {
4162					struct SerializeWith<'a>(&'a Vec<SubjectOfProperty>);
4163					impl<'a> Serialize for SerializeWith<'a> {
4164						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4165						where
4166							S: Serializer,
4167						{
4168							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
4169								self.0, serializer,
4170							)
4171						}
4172					}
4173					&SerializeWith(&self.r#subject_of)
4174				})?;
4175			} else {
4176				serialize_struct.skip_field("subjectOf")?;
4177			}
4178			if !Vec::is_empty(&self.r#url) {
4179				serialize_struct.serialize_field("url", {
4180					struct SerializeWith<'a>(&'a Vec<UrlProperty>);
4181					impl<'a> Serialize for SerializeWith<'a> {
4182						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
4183						where
4184							S: Serializer,
4185						{
4186							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
4187								self.0, serializer,
4188							)
4189						}
4190					}
4191					&SerializeWith(&self.r#url)
4192				})?;
4193			} else {
4194				serialize_struct.skip_field("url")?;
4195			}
4196			serialize_struct.end()
4197		}
4198	}
4199	impl<'de> Deserialize<'de> for VideoGameSeries {
4200		fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4201		where
4202			D: Deserializer<'de>,
4203		{
4204			enum Field {
4205				Actor,
4206				Actors,
4207				CharacterAttribute,
4208				CheatCode,
4209				ContainsSeason,
4210				Director,
4211				Directors,
4212				Episode,
4213				Episodes,
4214				GameItem,
4215				GameLocation,
4216				GamePlatform,
4217				MusicBy,
4218				NumberOfEpisodes,
4219				NumberOfPlayers,
4220				NumberOfSeasons,
4221				PlayMode,
4222				ProductionCompany,
4223				Quest,
4224				Season,
4225				Seasons,
4226				Trailer,
4227				About,
4228				Abstract,
4229				AccessMode,
4230				AccessModeSufficient,
4231				AccessibilityApi,
4232				AccessibilityControl,
4233				AccessibilityFeature,
4234				AccessibilityHazard,
4235				AccessibilitySummary,
4236				AccountablePerson,
4237				AcquireLicensePage,
4238				AggregateRating,
4239				AlternativeHeadline,
4240				ArchivedAt,
4241				Assesses,
4242				AssociatedMedia,
4243				Audience,
4244				Audio,
4245				Author,
4246				Award,
4247				Awards,
4248				Character,
4249				Citation,
4250				Comment,
4251				CommentCount,
4252				ConditionsOfAccess,
4253				ContentLocation,
4254				ContentRating,
4255				ContentReferenceTime,
4256				Contributor,
4257				CopyrightHolder,
4258				CopyrightNotice,
4259				CopyrightYear,
4260				Correction,
4261				CountryOfOrigin,
4262				CreativeWorkStatus,
4263				Creator,
4264				CreditText,
4265				DateCreated,
4266				DateModified,
4267				DatePublished,
4268				DiscussionUrl,
4269				EditEidr,
4270				Editor,
4271				EducationalAlignment,
4272				EducationalLevel,
4273				EducationalUse,
4274				Encoding,
4275				EncodingFormat,
4276				Encodings,
4277				ExampleOfWork,
4278				Expires,
4279				FileFormat,
4280				Funder,
4281				Funding,
4282				Genre,
4283				HasPart,
4284				Headline,
4285				InLanguage,
4286				InteractionStatistic,
4287				InteractivityType,
4288				InterpretedAsClaim,
4289				IsAccessibleForFree,
4290				IsBasedOn,
4291				IsBasedOnUrl,
4292				IsFamilyFriendly,
4293				IsPartOf,
4294				Keywords,
4295				LearningResourceType,
4296				License,
4297				LocationCreated,
4298				MainEntity,
4299				Maintainer,
4300				Material,
4301				MaterialExtent,
4302				Mentions,
4303				Offers,
4304				Pattern,
4305				Position,
4306				Producer,
4307				Provider,
4308				Publication,
4309				Publisher,
4310				PublisherImprint,
4311				PublishingPrinciples,
4312				RecordedAt,
4313				ReleasedEvent,
4314				Review,
4315				Reviews,
4316				SchemaVersion,
4317				SdDatePublished,
4318				SdLicense,
4319				SdPublisher,
4320				Size,
4321				SourceOrganization,
4322				Spatial,
4323				SpatialCoverage,
4324				Sponsor,
4325				Teaches,
4326				Temporal,
4327				TemporalCoverage,
4328				Text,
4329				Thumbnail,
4330				ThumbnailUrl,
4331				TimeRequired,
4332				TranslationOfWork,
4333				Translator,
4334				TypicalAgeRange,
4335				UsageInfo,
4336				Version,
4337				Video,
4338				WorkExample,
4339				WorkTranslation,
4340				EndDate,
4341				Issn,
4342				StartDate,
4343				AdditionalType,
4344				AlternateName,
4345				Description,
4346				DisambiguatingDescription,
4347				Identifier,
4348				Image,
4349				MainEntityOfPage,
4350				Name,
4351				PotentialAction,
4352				SameAs,
4353				SubjectOf,
4354				Url,
4355				Ignore,
4356			}
4357			struct FieldVisitor;
4358			impl<'de> Visitor<'de> for FieldVisitor {
4359				type Value = Field;
4360				fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
4361					formatter.write_str("field identifier")
4362				}
4363				fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
4364				where
4365					E: de::Error,
4366				{
4367					match value {
4368						"actor" => Ok(Field::Actor),
4369						"actors" => Ok(Field::Actors),
4370						"characterAttribute" => Ok(Field::CharacterAttribute),
4371						"cheatCode" => Ok(Field::CheatCode),
4372						"containsSeason" => Ok(Field::ContainsSeason),
4373						"director" => Ok(Field::Director),
4374						"directors" => Ok(Field::Directors),
4375						"episode" => Ok(Field::Episode),
4376						"episodes" => Ok(Field::Episodes),
4377						"gameItem" => Ok(Field::GameItem),
4378						"gameLocation" => Ok(Field::GameLocation),
4379						"gamePlatform" => Ok(Field::GamePlatform),
4380						"musicBy" => Ok(Field::MusicBy),
4381						"numberOfEpisodes" => Ok(Field::NumberOfEpisodes),
4382						"numberOfPlayers" => Ok(Field::NumberOfPlayers),
4383						"numberOfSeasons" => Ok(Field::NumberOfSeasons),
4384						"playMode" => Ok(Field::PlayMode),
4385						"productionCompany" => Ok(Field::ProductionCompany),
4386						"quest" => Ok(Field::Quest),
4387						"season" => Ok(Field::Season),
4388						"seasons" => Ok(Field::Seasons),
4389						"trailer" => Ok(Field::Trailer),
4390						"about" => Ok(Field::About),
4391						"abstract" => Ok(Field::Abstract),
4392						"accessMode" => Ok(Field::AccessMode),
4393						"accessModeSufficient" => Ok(Field::AccessModeSufficient),
4394						"accessibilityAPI" => Ok(Field::AccessibilityApi),
4395						"accessibilityControl" => Ok(Field::AccessibilityControl),
4396						"accessibilityFeature" => Ok(Field::AccessibilityFeature),
4397						"accessibilityHazard" => Ok(Field::AccessibilityHazard),
4398						"accessibilitySummary" => Ok(Field::AccessibilitySummary),
4399						"accountablePerson" => Ok(Field::AccountablePerson),
4400						"acquireLicensePage" => Ok(Field::AcquireLicensePage),
4401						"aggregateRating" => Ok(Field::AggregateRating),
4402						"alternativeHeadline" => Ok(Field::AlternativeHeadline),
4403						"archivedAt" => Ok(Field::ArchivedAt),
4404						"assesses" => Ok(Field::Assesses),
4405						"associatedMedia" => Ok(Field::AssociatedMedia),
4406						"audience" => Ok(Field::Audience),
4407						"audio" => Ok(Field::Audio),
4408						"author" => Ok(Field::Author),
4409						"award" => Ok(Field::Award),
4410						"awards" => Ok(Field::Awards),
4411						"character" => Ok(Field::Character),
4412						"citation" => Ok(Field::Citation),
4413						"comment" => Ok(Field::Comment),
4414						"commentCount" => Ok(Field::CommentCount),
4415						"conditionsOfAccess" => Ok(Field::ConditionsOfAccess),
4416						"contentLocation" => Ok(Field::ContentLocation),
4417						"contentRating" => Ok(Field::ContentRating),
4418						"contentReferenceTime" => Ok(Field::ContentReferenceTime),
4419						"contributor" => Ok(Field::Contributor),
4420						"copyrightHolder" => Ok(Field::CopyrightHolder),
4421						"copyrightNotice" => Ok(Field::CopyrightNotice),
4422						"copyrightYear" => Ok(Field::CopyrightYear),
4423						"correction" => Ok(Field::Correction),
4424						"countryOfOrigin" => Ok(Field::CountryOfOrigin),
4425						"creativeWorkStatus" => Ok(Field::CreativeWorkStatus),
4426						"creator" => Ok(Field::Creator),
4427						"creditText" => Ok(Field::CreditText),
4428						"dateCreated" => Ok(Field::DateCreated),
4429						"dateModified" => Ok(Field::DateModified),
4430						"datePublished" => Ok(Field::DatePublished),
4431						"discussionUrl" => Ok(Field::DiscussionUrl),
4432						"editEIDR" => Ok(Field::EditEidr),
4433						"editor" => Ok(Field::Editor),
4434						"educationalAlignment" => Ok(Field::EducationalAlignment),
4435						"educationalLevel" => Ok(Field::EducationalLevel),
4436						"educationalUse" => Ok(Field::EducationalUse),
4437						"encoding" => Ok(Field::Encoding),
4438						"encodingFormat" => Ok(Field::EncodingFormat),
4439						"encodings" => Ok(Field::Encodings),
4440						"exampleOfWork" => Ok(Field::ExampleOfWork),
4441						"expires" => Ok(Field::Expires),
4442						"fileFormat" => Ok(Field::FileFormat),
4443						"funder" => Ok(Field::Funder),
4444						"funding" => Ok(Field::Funding),
4445						"genre" => Ok(Field::Genre),
4446						"hasPart" => Ok(Field::HasPart),
4447						"headline" => Ok(Field::Headline),
4448						"inLanguage" => Ok(Field::InLanguage),
4449						"interactionStatistic" => Ok(Field::InteractionStatistic),
4450						"interactivityType" => Ok(Field::InteractivityType),
4451						"interpretedAsClaim" => Ok(Field::InterpretedAsClaim),
4452						"isAccessibleForFree" => Ok(Field::IsAccessibleForFree),
4453						"isBasedOn" => Ok(Field::IsBasedOn),
4454						"isBasedOnUrl" => Ok(Field::IsBasedOnUrl),
4455						"isFamilyFriendly" => Ok(Field::IsFamilyFriendly),
4456						"isPartOf" => Ok(Field::IsPartOf),
4457						"keywords" => Ok(Field::Keywords),
4458						"learningResourceType" => Ok(Field::LearningResourceType),
4459						"license" => Ok(Field::License),
4460						"locationCreated" => Ok(Field::LocationCreated),
4461						"mainEntity" => Ok(Field::MainEntity),
4462						"maintainer" => Ok(Field::Maintainer),
4463						"material" => Ok(Field::Material),
4464						"materialExtent" => Ok(Field::MaterialExtent),
4465						"mentions" => Ok(Field::Mentions),
4466						"offers" => Ok(Field::Offers),
4467						"pattern" => Ok(Field::Pattern),
4468						"position" => Ok(Field::Position),
4469						"producer" => Ok(Field::Producer),
4470						"provider" => Ok(Field::Provider),
4471						"publication" => Ok(Field::Publication),
4472						"publisher" => Ok(Field::Publisher),
4473						"publisherImprint" => Ok(Field::PublisherImprint),
4474						"publishingPrinciples" => Ok(Field::PublishingPrinciples),
4475						"recordedAt" => Ok(Field::RecordedAt),
4476						"releasedEvent" => Ok(Field::ReleasedEvent),
4477						"review" => Ok(Field::Review),
4478						"reviews" => Ok(Field::Reviews),
4479						"schemaVersion" => Ok(Field::SchemaVersion),
4480						"sdDatePublished" => Ok(Field::SdDatePublished),
4481						"sdLicense" => Ok(Field::SdLicense),
4482						"sdPublisher" => Ok(Field::SdPublisher),
4483						"size" => Ok(Field::Size),
4484						"sourceOrganization" => Ok(Field::SourceOrganization),
4485						"spatial" => Ok(Field::Spatial),
4486						"spatialCoverage" => Ok(Field::SpatialCoverage),
4487						"sponsor" => Ok(Field::Sponsor),
4488						"teaches" => Ok(Field::Teaches),
4489						"temporal" => Ok(Field::Temporal),
4490						"temporalCoverage" => Ok(Field::TemporalCoverage),
4491						"text" => Ok(Field::Text),
4492						"thumbnail" => Ok(Field::Thumbnail),
4493						"thumbnailUrl" => Ok(Field::ThumbnailUrl),
4494						"timeRequired" => Ok(Field::TimeRequired),
4495						"translationOfWork" => Ok(Field::TranslationOfWork),
4496						"translator" => Ok(Field::Translator),
4497						"typicalAgeRange" => Ok(Field::TypicalAgeRange),
4498						"usageInfo" => Ok(Field::UsageInfo),
4499						"version" => Ok(Field::Version),
4500						"video" => Ok(Field::Video),
4501						"workExample" => Ok(Field::WorkExample),
4502						"workTranslation" => Ok(Field::WorkTranslation),
4503						"endDate" => Ok(Field::EndDate),
4504						"issn" => Ok(Field::Issn),
4505						"startDate" => Ok(Field::StartDate),
4506						"additionalType" => Ok(Field::AdditionalType),
4507						"alternateName" => Ok(Field::AlternateName),
4508						"description" => Ok(Field::Description),
4509						"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
4510						"identifier" => Ok(Field::Identifier),
4511						"image" => Ok(Field::Image),
4512						"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
4513						"name" => Ok(Field::Name),
4514						"potentialAction" => Ok(Field::PotentialAction),
4515						"sameAs" => Ok(Field::SameAs),
4516						"subjectOf" => Ok(Field::SubjectOf),
4517						"url" => Ok(Field::Url),
4518						"id" | "type" => Ok(Field::Ignore),
4519						_ => Err(de::Error::unknown_field(value, FIELDS)),
4520					}
4521				}
4522				fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
4523				where
4524					E: de::Error,
4525				{
4526					match value {
4527						b"actor" => Ok(Field::Actor),
4528						b"actors" => Ok(Field::Actors),
4529						b"characterAttribute" => Ok(Field::CharacterAttribute),
4530						b"cheatCode" => Ok(Field::CheatCode),
4531						b"containsSeason" => Ok(Field::ContainsSeason),
4532						b"director" => Ok(Field::Director),
4533						b"directors" => Ok(Field::Directors),
4534						b"episode" => Ok(Field::Episode),
4535						b"episodes" => Ok(Field::Episodes),
4536						b"gameItem" => Ok(Field::GameItem),
4537						b"gameLocation" => Ok(Field::GameLocation),
4538						b"gamePlatform" => Ok(Field::GamePlatform),
4539						b"musicBy" => Ok(Field::MusicBy),
4540						b"numberOfEpisodes" => Ok(Field::NumberOfEpisodes),
4541						b"numberOfPlayers" => Ok(Field::NumberOfPlayers),
4542						b"numberOfSeasons" => Ok(Field::NumberOfSeasons),
4543						b"playMode" => Ok(Field::PlayMode),
4544						b"productionCompany" => Ok(Field::ProductionCompany),
4545						b"quest" => Ok(Field::Quest),
4546						b"season" => Ok(Field::Season),
4547						b"seasons" => Ok(Field::Seasons),
4548						b"trailer" => Ok(Field::Trailer),
4549						b"about" => Ok(Field::About),
4550						b"abstract" => Ok(Field::Abstract),
4551						b"accessMode" => Ok(Field::AccessMode),
4552						b"accessModeSufficient" => Ok(Field::AccessModeSufficient),
4553						b"accessibilityAPI" => Ok(Field::AccessibilityApi),
4554						b"accessibilityControl" => Ok(Field::AccessibilityControl),
4555						b"accessibilityFeature" => Ok(Field::AccessibilityFeature),
4556						b"accessibilityHazard" => Ok(Field::AccessibilityHazard),
4557						b"accessibilitySummary" => Ok(Field::AccessibilitySummary),
4558						b"accountablePerson" => Ok(Field::AccountablePerson),
4559						b"acquireLicensePage" => Ok(Field::AcquireLicensePage),
4560						b"aggregateRating" => Ok(Field::AggregateRating),
4561						b"alternativeHeadline" => Ok(Field::AlternativeHeadline),
4562						b"archivedAt" => Ok(Field::ArchivedAt),
4563						b"assesses" => Ok(Field::Assesses),
4564						b"associatedMedia" => Ok(Field::AssociatedMedia),
4565						b"audience" => Ok(Field::Audience),
4566						b"audio" => Ok(Field::Audio),
4567						b"author" => Ok(Field::Author),
4568						b"award" => Ok(Field::Award),
4569						b"awards" => Ok(Field::Awards),
4570						b"character" => Ok(Field::Character),
4571						b"citation" => Ok(Field::Citation),
4572						b"comment" => Ok(Field::Comment),
4573						b"commentCount" => Ok(Field::CommentCount),
4574						b"conditionsOfAccess" => Ok(Field::ConditionsOfAccess),
4575						b"contentLocation" => Ok(Field::ContentLocation),
4576						b"contentRating" => Ok(Field::ContentRating),
4577						b"contentReferenceTime" => Ok(Field::ContentReferenceTime),
4578						b"contributor" => Ok(Field::Contributor),
4579						b"copyrightHolder" => Ok(Field::CopyrightHolder),
4580						b"copyrightNotice" => Ok(Field::CopyrightNotice),
4581						b"copyrightYear" => Ok(Field::CopyrightYear),
4582						b"correction" => Ok(Field::Correction),
4583						b"countryOfOrigin" => Ok(Field::CountryOfOrigin),
4584						b"creativeWorkStatus" => Ok(Field::CreativeWorkStatus),
4585						b"creator" => Ok(Field::Creator),
4586						b"creditText" => Ok(Field::CreditText),
4587						b"dateCreated" => Ok(Field::DateCreated),
4588						b"dateModified" => Ok(Field::DateModified),
4589						b"datePublished" => Ok(Field::DatePublished),
4590						b"discussionUrl" => Ok(Field::DiscussionUrl),
4591						b"editEIDR" => Ok(Field::EditEidr),
4592						b"editor" => Ok(Field::Editor),
4593						b"educationalAlignment" => Ok(Field::EducationalAlignment),
4594						b"educationalLevel" => Ok(Field::EducationalLevel),
4595						b"educationalUse" => Ok(Field::EducationalUse),
4596						b"encoding" => Ok(Field::Encoding),
4597						b"encodingFormat" => Ok(Field::EncodingFormat),
4598						b"encodings" => Ok(Field::Encodings),
4599						b"exampleOfWork" => Ok(Field::ExampleOfWork),
4600						b"expires" => Ok(Field::Expires),
4601						b"fileFormat" => Ok(Field::FileFormat),
4602						b"funder" => Ok(Field::Funder),
4603						b"funding" => Ok(Field::Funding),
4604						b"genre" => Ok(Field::Genre),
4605						b"hasPart" => Ok(Field::HasPart),
4606						b"headline" => Ok(Field::Headline),
4607						b"inLanguage" => Ok(Field::InLanguage),
4608						b"interactionStatistic" => Ok(Field::InteractionStatistic),
4609						b"interactivityType" => Ok(Field::InteractivityType),
4610						b"interpretedAsClaim" => Ok(Field::InterpretedAsClaim),
4611						b"isAccessibleForFree" => Ok(Field::IsAccessibleForFree),
4612						b"isBasedOn" => Ok(Field::IsBasedOn),
4613						b"isBasedOnUrl" => Ok(Field::IsBasedOnUrl),
4614						b"isFamilyFriendly" => Ok(Field::IsFamilyFriendly),
4615						b"isPartOf" => Ok(Field::IsPartOf),
4616						b"keywords" => Ok(Field::Keywords),
4617						b"learningResourceType" => Ok(Field::LearningResourceType),
4618						b"license" => Ok(Field::License),
4619						b"locationCreated" => Ok(Field::LocationCreated),
4620						b"mainEntity" => Ok(Field::MainEntity),
4621						b"maintainer" => Ok(Field::Maintainer),
4622						b"material" => Ok(Field::Material),
4623						b"materialExtent" => Ok(Field::MaterialExtent),
4624						b"mentions" => Ok(Field::Mentions),
4625						b"offers" => Ok(Field::Offers),
4626						b"pattern" => Ok(Field::Pattern),
4627						b"position" => Ok(Field::Position),
4628						b"producer" => Ok(Field::Producer),
4629						b"provider" => Ok(Field::Provider),
4630						b"publication" => Ok(Field::Publication),
4631						b"publisher" => Ok(Field::Publisher),
4632						b"publisherImprint" => Ok(Field::PublisherImprint),
4633						b"publishingPrinciples" => Ok(Field::PublishingPrinciples),
4634						b"recordedAt" => Ok(Field::RecordedAt),
4635						b"releasedEvent" => Ok(Field::ReleasedEvent),
4636						b"review" => Ok(Field::Review),
4637						b"reviews" => Ok(Field::Reviews),
4638						b"schemaVersion" => Ok(Field::SchemaVersion),
4639						b"sdDatePublished" => Ok(Field::SdDatePublished),
4640						b"sdLicense" => Ok(Field::SdLicense),
4641						b"sdPublisher" => Ok(Field::SdPublisher),
4642						b"size" => Ok(Field::Size),
4643						b"sourceOrganization" => Ok(Field::SourceOrganization),
4644						b"spatial" => Ok(Field::Spatial),
4645						b"spatialCoverage" => Ok(Field::SpatialCoverage),
4646						b"sponsor" => Ok(Field::Sponsor),
4647						b"teaches" => Ok(Field::Teaches),
4648						b"temporal" => Ok(Field::Temporal),
4649						b"temporalCoverage" => Ok(Field::TemporalCoverage),
4650						b"text" => Ok(Field::Text),
4651						b"thumbnail" => Ok(Field::Thumbnail),
4652						b"thumbnailUrl" => Ok(Field::ThumbnailUrl),
4653						b"timeRequired" => Ok(Field::TimeRequired),
4654						b"translationOfWork" => Ok(Field::TranslationOfWork),
4655						b"translator" => Ok(Field::Translator),
4656						b"typicalAgeRange" => Ok(Field::TypicalAgeRange),
4657						b"usageInfo" => Ok(Field::UsageInfo),
4658						b"version" => Ok(Field::Version),
4659						b"video" => Ok(Field::Video),
4660						b"workExample" => Ok(Field::WorkExample),
4661						b"workTranslation" => Ok(Field::WorkTranslation),
4662						b"endDate" => Ok(Field::EndDate),
4663						b"issn" => Ok(Field::Issn),
4664						b"startDate" => Ok(Field::StartDate),
4665						b"additionalType" => Ok(Field::AdditionalType),
4666						b"alternateName" => Ok(Field::AlternateName),
4667						b"description" => Ok(Field::Description),
4668						b"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
4669						b"identifier" => Ok(Field::Identifier),
4670						b"image" => Ok(Field::Image),
4671						b"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
4672						b"name" => Ok(Field::Name),
4673						b"potentialAction" => Ok(Field::PotentialAction),
4674						b"sameAs" => Ok(Field::SameAs),
4675						b"subjectOf" => Ok(Field::SubjectOf),
4676						b"url" => Ok(Field::Url),
4677						b"id" | b"type" => Ok(Field::Ignore),
4678						_ => {
4679							let value = &String::from_utf8_lossy(value);
4680							Err(de::Error::unknown_field(value, FIELDS))
4681						}
4682					}
4683				}
4684			}
4685			impl<'de> Deserialize<'de> for Field {
4686				fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4687				where
4688					D: Deserializer<'de>,
4689				{
4690					deserializer.deserialize_identifier(FieldVisitor)
4691				}
4692			}
4693			struct ClassVisitor;
4694			impl<'de> Visitor<'de> for ClassVisitor {
4695				type Value = VideoGameSeries;
4696				fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
4697					formatter.write_str("schema.org schema VideoGameSeries")
4698				}
4699				fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
4700				where
4701					A: de::MapAccess<'de>,
4702				{
4703					let mut r#actor_property = None;
4704					let mut r#actors_property = None;
4705					let mut r#character_attribute_property = None;
4706					let mut r#cheat_code_property = None;
4707					let mut r#contains_season_property = None;
4708					let mut r#director_property = None;
4709					let mut r#directors_property = None;
4710					let mut r#episode_property = None;
4711					let mut r#episodes_property = None;
4712					let mut r#game_item_property = None;
4713					let mut r#game_location_property = None;
4714					let mut r#game_platform_property = None;
4715					let mut r#music_by_property = None;
4716					let mut r#number_of_episodes_property = None;
4717					let mut r#number_of_players_property = None;
4718					let mut r#number_of_seasons_property = None;
4719					let mut r#play_mode_property = None;
4720					let mut r#production_company_property = None;
4721					let mut r#quest_property = None;
4722					let mut r#season_property = None;
4723					let mut r#seasons_property = None;
4724					let mut r#trailer_property = None;
4725					let mut r#about_property = None;
4726					let mut r#abstract_property = None;
4727					let mut r#access_mode_property = None;
4728					let mut r#access_mode_sufficient_property = None;
4729					let mut r#accessibility_api_property = None;
4730					let mut r#accessibility_control_property = None;
4731					let mut r#accessibility_feature_property = None;
4732					let mut r#accessibility_hazard_property = None;
4733					let mut r#accessibility_summary_property = None;
4734					let mut r#accountable_person_property = None;
4735					let mut r#acquire_license_page_property = None;
4736					let mut r#aggregate_rating_property = None;
4737					let mut r#alternative_headline_property = None;
4738					let mut r#archived_at_property = None;
4739					let mut r#assesses_property = None;
4740					let mut r#associated_media_property = None;
4741					let mut r#audience_property = None;
4742					let mut r#audio_property = None;
4743					let mut r#author_property = None;
4744					let mut r#award_property = None;
4745					let mut r#awards_property = None;
4746					let mut r#character_property = None;
4747					let mut r#citation_property = None;
4748					let mut r#comment_property = None;
4749					let mut r#comment_count_property = None;
4750					let mut r#conditions_of_access_property = None;
4751					let mut r#content_location_property = None;
4752					let mut r#content_rating_property = None;
4753					let mut r#content_reference_time_property = None;
4754					let mut r#contributor_property = None;
4755					let mut r#copyright_holder_property = None;
4756					let mut r#copyright_notice_property = None;
4757					let mut r#copyright_year_property = None;
4758					let mut r#correction_property = None;
4759					let mut r#country_of_origin_property = None;
4760					let mut r#creative_work_status_property = None;
4761					let mut r#creator_property = None;
4762					let mut r#credit_text_property = None;
4763					let mut r#date_created_property = None;
4764					let mut r#date_modified_property = None;
4765					let mut r#date_published_property = None;
4766					let mut r#discussion_url_property = None;
4767					let mut r#edit_eidr_property = None;
4768					let mut r#editor_property = None;
4769					let mut r#educational_alignment_property = None;
4770					let mut r#educational_level_property = None;
4771					let mut r#educational_use_property = None;
4772					let mut r#encoding_property = None;
4773					let mut r#encoding_format_property = None;
4774					let mut r#encodings_property = None;
4775					let mut r#example_of_work_property = None;
4776					let mut r#expires_property = None;
4777					let mut r#file_format_property = None;
4778					let mut r#funder_property = None;
4779					let mut r#funding_property = None;
4780					let mut r#genre_property = None;
4781					let mut r#has_part_property = None;
4782					let mut r#headline_property = None;
4783					let mut r#in_language_property = None;
4784					let mut r#interaction_statistic_property = None;
4785					let mut r#interactivity_type_property = None;
4786					let mut r#interpreted_as_claim_property = None;
4787					let mut r#is_accessible_for_free_property = None;
4788					let mut r#is_based_on_property = None;
4789					let mut r#is_based_on_url_property = None;
4790					let mut r#is_family_friendly_property = None;
4791					let mut r#is_part_of_property = None;
4792					let mut r#keywords_property = None;
4793					let mut r#learning_resource_type_property = None;
4794					let mut r#license_property = None;
4795					let mut r#location_created_property = None;
4796					let mut r#main_entity_property = None;
4797					let mut r#maintainer_property = None;
4798					let mut r#material_property = None;
4799					let mut r#material_extent_property = None;
4800					let mut r#mentions_property = None;
4801					let mut r#offers_property = None;
4802					let mut r#pattern_property = None;
4803					let mut r#position_property = None;
4804					let mut r#producer_property = None;
4805					let mut r#provider_property = None;
4806					let mut r#publication_property = None;
4807					let mut r#publisher_property = None;
4808					let mut r#publisher_imprint_property = None;
4809					let mut r#publishing_principles_property = None;
4810					let mut r#recorded_at_property = None;
4811					let mut r#released_event_property = None;
4812					let mut r#review_property = None;
4813					let mut r#reviews_property = None;
4814					let mut r#schema_version_property = None;
4815					let mut r#sd_date_published_property = None;
4816					let mut r#sd_license_property = None;
4817					let mut r#sd_publisher_property = None;
4818					let mut r#size_property = None;
4819					let mut r#source_organization_property = None;
4820					let mut r#spatial_property = None;
4821					let mut r#spatial_coverage_property = None;
4822					let mut r#sponsor_property = None;
4823					let mut r#teaches_property = None;
4824					let mut r#temporal_property = None;
4825					let mut r#temporal_coverage_property = None;
4826					let mut r#text_property = None;
4827					let mut r#thumbnail_property = None;
4828					let mut r#thumbnail_url_property = None;
4829					let mut r#time_required_property = None;
4830					let mut r#translation_of_work_property = None;
4831					let mut r#translator_property = None;
4832					let mut r#typical_age_range_property = None;
4833					let mut r#usage_info_property = None;
4834					let mut r#version_property = None;
4835					let mut r#video_property = None;
4836					let mut r#work_example_property = None;
4837					let mut r#work_translation_property = None;
4838					let mut r#end_date_property = None;
4839					let mut r#issn_property = None;
4840					let mut r#start_date_property = None;
4841					let mut r#additional_type_property = None;
4842					let mut r#alternate_name_property = None;
4843					let mut r#description_property = None;
4844					let mut r#disambiguating_description_property = None;
4845					let mut r#identifier_property = None;
4846					let mut r#image_property = None;
4847					let mut r#main_entity_of_page_property = None;
4848					let mut r#name_property = None;
4849					let mut r#potential_action_property = None;
4850					let mut r#same_as_property = None;
4851					let mut r#subject_of_property = None;
4852					let mut r#url_property = None;
4853					while let Some(key) = map.next_key::<Field>()? {
4854						match key {
4855							Field::Actor => {
4856								if r#actor_property.is_some() {
4857									return Err(<A::Error as de::Error>::duplicate_field("actor"));
4858								}
4859								r#actor_property = Some({
4860									struct DeserializeWith(Vec<ActorProperty>);
4861									impl<'de> Deserialize<'de> for DeserializeWith {
4862										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4863										where
4864											D: Deserializer<'de>,
4865										{
4866											Ok(DeserializeWith(serde_with::As::<
4867												serde_with::OneOrMany<serde_with::Same>,
4868											>::deserialize(deserializer)?))
4869										}
4870									}
4871									match map.next_value::<DeserializeWith>() {
4872										Ok(deserialize_with) => deserialize_with.0,
4873										Err(err) => {
4874											return Err(err);
4875										}
4876									}
4877								});
4878							}
4879							Field::Actors => {
4880								if r#actors_property.is_some() {
4881									return Err(<A::Error as de::Error>::duplicate_field("actors"));
4882								}
4883								r#actors_property = Some({
4884									struct DeserializeWith(Vec<ActorsProperty>);
4885									impl<'de> Deserialize<'de> for DeserializeWith {
4886										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4887										where
4888											D: Deserializer<'de>,
4889										{
4890											Ok(DeserializeWith(serde_with::As::<
4891												serde_with::OneOrMany<serde_with::Same>,
4892											>::deserialize(deserializer)?))
4893										}
4894									}
4895									match map.next_value::<DeserializeWith>() {
4896										Ok(deserialize_with) => deserialize_with.0,
4897										Err(err) => {
4898											return Err(err);
4899										}
4900									}
4901								});
4902							}
4903							Field::CharacterAttribute => {
4904								if r#character_attribute_property.is_some() {
4905									return Err(<A::Error as de::Error>::duplicate_field(
4906										"characterAttribute",
4907									));
4908								}
4909								r#character_attribute_property = Some({
4910									struct DeserializeWith(Vec<CharacterAttributeProperty>);
4911									impl<'de> Deserialize<'de> for DeserializeWith {
4912										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4913										where
4914											D: Deserializer<'de>,
4915										{
4916											Ok(DeserializeWith(serde_with::As::<
4917												serde_with::OneOrMany<serde_with::Same>,
4918											>::deserialize(deserializer)?))
4919										}
4920									}
4921									match map.next_value::<DeserializeWith>() {
4922										Ok(deserialize_with) => deserialize_with.0,
4923										Err(err) => {
4924											return Err(err);
4925										}
4926									}
4927								});
4928							}
4929							Field::CheatCode => {
4930								if r#cheat_code_property.is_some() {
4931									return Err(<A::Error as de::Error>::duplicate_field(
4932										"cheatCode",
4933									));
4934								}
4935								r#cheat_code_property = Some({
4936									struct DeserializeWith(Vec<CheatCodeProperty>);
4937									impl<'de> Deserialize<'de> for DeserializeWith {
4938										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4939										where
4940											D: Deserializer<'de>,
4941										{
4942											Ok(DeserializeWith(serde_with::As::<
4943												serde_with::OneOrMany<serde_with::Same>,
4944											>::deserialize(deserializer)?))
4945										}
4946									}
4947									match map.next_value::<DeserializeWith>() {
4948										Ok(deserialize_with) => deserialize_with.0,
4949										Err(err) => {
4950											return Err(err);
4951										}
4952									}
4953								});
4954							}
4955							Field::ContainsSeason => {
4956								if r#contains_season_property.is_some() {
4957									return Err(<A::Error as de::Error>::duplicate_field(
4958										"containsSeason",
4959									));
4960								}
4961								r#contains_season_property = Some({
4962									struct DeserializeWith(Vec<ContainsSeasonProperty>);
4963									impl<'de> Deserialize<'de> for DeserializeWith {
4964										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4965										where
4966											D: Deserializer<'de>,
4967										{
4968											Ok(DeserializeWith(serde_with::As::<
4969												serde_with::OneOrMany<serde_with::Same>,
4970											>::deserialize(deserializer)?))
4971										}
4972									}
4973									match map.next_value::<DeserializeWith>() {
4974										Ok(deserialize_with) => deserialize_with.0,
4975										Err(err) => {
4976											return Err(err);
4977										}
4978									}
4979								});
4980							}
4981							Field::Director => {
4982								if r#director_property.is_some() {
4983									return Err(<A::Error as de::Error>::duplicate_field(
4984										"director",
4985									));
4986								}
4987								r#director_property = Some({
4988									struct DeserializeWith(Vec<DirectorProperty>);
4989									impl<'de> Deserialize<'de> for DeserializeWith {
4990										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4991										where
4992											D: Deserializer<'de>,
4993										{
4994											Ok(DeserializeWith(serde_with::As::<
4995												serde_with::OneOrMany<serde_with::Same>,
4996											>::deserialize(deserializer)?))
4997										}
4998									}
4999									match map.next_value::<DeserializeWith>() {
5000										Ok(deserialize_with) => deserialize_with.0,
5001										Err(err) => {
5002											return Err(err);
5003										}
5004									}
5005								});
5006							}
5007							Field::Directors => {
5008								if r#directors_property.is_some() {
5009									return Err(<A::Error as de::Error>::duplicate_field(
5010										"directors",
5011									));
5012								}
5013								r#directors_property = Some({
5014									struct DeserializeWith(Vec<DirectorsProperty>);
5015									impl<'de> Deserialize<'de> for DeserializeWith {
5016										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5017										where
5018											D: Deserializer<'de>,
5019										{
5020											Ok(DeserializeWith(serde_with::As::<
5021												serde_with::OneOrMany<serde_with::Same>,
5022											>::deserialize(deserializer)?))
5023										}
5024									}
5025									match map.next_value::<DeserializeWith>() {
5026										Ok(deserialize_with) => deserialize_with.0,
5027										Err(err) => {
5028											return Err(err);
5029										}
5030									}
5031								});
5032							}
5033							Field::Episode => {
5034								if r#episode_property.is_some() {
5035									return Err(<A::Error as de::Error>::duplicate_field(
5036										"episode",
5037									));
5038								}
5039								r#episode_property = Some({
5040									struct DeserializeWith(Vec<EpisodeProperty>);
5041									impl<'de> Deserialize<'de> for DeserializeWith {
5042										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5043										where
5044											D: Deserializer<'de>,
5045										{
5046											Ok(DeserializeWith(serde_with::As::<
5047												serde_with::OneOrMany<serde_with::Same>,
5048											>::deserialize(deserializer)?))
5049										}
5050									}
5051									match map.next_value::<DeserializeWith>() {
5052										Ok(deserialize_with) => deserialize_with.0,
5053										Err(err) => {
5054											return Err(err);
5055										}
5056									}
5057								});
5058							}
5059							Field::Episodes => {
5060								if r#episodes_property.is_some() {
5061									return Err(<A::Error as de::Error>::duplicate_field(
5062										"episodes",
5063									));
5064								}
5065								r#episodes_property = Some({
5066									struct DeserializeWith(Vec<EpisodesProperty>);
5067									impl<'de> Deserialize<'de> for DeserializeWith {
5068										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5069										where
5070											D: Deserializer<'de>,
5071										{
5072											Ok(DeserializeWith(serde_with::As::<
5073												serde_with::OneOrMany<serde_with::Same>,
5074											>::deserialize(deserializer)?))
5075										}
5076									}
5077									match map.next_value::<DeserializeWith>() {
5078										Ok(deserialize_with) => deserialize_with.0,
5079										Err(err) => {
5080											return Err(err);
5081										}
5082									}
5083								});
5084							}
5085							Field::GameItem => {
5086								if r#game_item_property.is_some() {
5087									return Err(<A::Error as de::Error>::duplicate_field(
5088										"gameItem",
5089									));
5090								}
5091								r#game_item_property = Some({
5092									struct DeserializeWith(Vec<GameItemProperty>);
5093									impl<'de> Deserialize<'de> for DeserializeWith {
5094										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5095										where
5096											D: Deserializer<'de>,
5097										{
5098											Ok(DeserializeWith(serde_with::As::<
5099												serde_with::OneOrMany<serde_with::Same>,
5100											>::deserialize(deserializer)?))
5101										}
5102									}
5103									match map.next_value::<DeserializeWith>() {
5104										Ok(deserialize_with) => deserialize_with.0,
5105										Err(err) => {
5106											return Err(err);
5107										}
5108									}
5109								});
5110							}
5111							Field::GameLocation => {
5112								if r#game_location_property.is_some() {
5113									return Err(<A::Error as de::Error>::duplicate_field(
5114										"gameLocation",
5115									));
5116								}
5117								r#game_location_property = Some({
5118									struct DeserializeWith(Vec<GameLocationProperty>);
5119									impl<'de> Deserialize<'de> for DeserializeWith {
5120										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5121										where
5122											D: Deserializer<'de>,
5123										{
5124											Ok(DeserializeWith(serde_with::As::<
5125												serde_with::OneOrMany<serde_with::Same>,
5126											>::deserialize(deserializer)?))
5127										}
5128									}
5129									match map.next_value::<DeserializeWith>() {
5130										Ok(deserialize_with) => deserialize_with.0,
5131										Err(err) => {
5132											return Err(err);
5133										}
5134									}
5135								});
5136							}
5137							Field::GamePlatform => {
5138								if r#game_platform_property.is_some() {
5139									return Err(<A::Error as de::Error>::duplicate_field(
5140										"gamePlatform",
5141									));
5142								}
5143								r#game_platform_property = Some({
5144									struct DeserializeWith(Vec<GamePlatformProperty>);
5145									impl<'de> Deserialize<'de> for DeserializeWith {
5146										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5147										where
5148											D: Deserializer<'de>,
5149										{
5150											Ok(DeserializeWith(serde_with::As::<
5151												serde_with::OneOrMany<serde_with::Same>,
5152											>::deserialize(deserializer)?))
5153										}
5154									}
5155									match map.next_value::<DeserializeWith>() {
5156										Ok(deserialize_with) => deserialize_with.0,
5157										Err(err) => {
5158											return Err(err);
5159										}
5160									}
5161								});
5162							}
5163							Field::MusicBy => {
5164								if r#music_by_property.is_some() {
5165									return Err(<A::Error as de::Error>::duplicate_field(
5166										"musicBy",
5167									));
5168								}
5169								r#music_by_property = Some({
5170									struct DeserializeWith(Vec<MusicByProperty>);
5171									impl<'de> Deserialize<'de> for DeserializeWith {
5172										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5173										where
5174											D: Deserializer<'de>,
5175										{
5176											Ok(DeserializeWith(serde_with::As::<
5177												serde_with::OneOrMany<serde_with::Same>,
5178											>::deserialize(deserializer)?))
5179										}
5180									}
5181									match map.next_value::<DeserializeWith>() {
5182										Ok(deserialize_with) => deserialize_with.0,
5183										Err(err) => {
5184											return Err(err);
5185										}
5186									}
5187								});
5188							}
5189							Field::NumberOfEpisodes => {
5190								if r#number_of_episodes_property.is_some() {
5191									return Err(<A::Error as de::Error>::duplicate_field(
5192										"numberOfEpisodes",
5193									));
5194								}
5195								r#number_of_episodes_property = Some({
5196									struct DeserializeWith(Vec<NumberOfEpisodesProperty>);
5197									impl<'de> Deserialize<'de> for DeserializeWith {
5198										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5199										where
5200											D: Deserializer<'de>,
5201										{
5202											Ok(DeserializeWith(serde_with::As::<
5203												serde_with::OneOrMany<serde_with::Same>,
5204											>::deserialize(deserializer)?))
5205										}
5206									}
5207									match map.next_value::<DeserializeWith>() {
5208										Ok(deserialize_with) => deserialize_with.0,
5209										Err(err) => {
5210											return Err(err);
5211										}
5212									}
5213								});
5214							}
5215							Field::NumberOfPlayers => {
5216								if r#number_of_players_property.is_some() {
5217									return Err(<A::Error as de::Error>::duplicate_field(
5218										"numberOfPlayers",
5219									));
5220								}
5221								r#number_of_players_property = Some({
5222									struct DeserializeWith(Vec<NumberOfPlayersProperty>);
5223									impl<'de> Deserialize<'de> for DeserializeWith {
5224										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5225										where
5226											D: Deserializer<'de>,
5227										{
5228											Ok(DeserializeWith(serde_with::As::<
5229												serde_with::OneOrMany<serde_with::Same>,
5230											>::deserialize(deserializer)?))
5231										}
5232									}
5233									match map.next_value::<DeserializeWith>() {
5234										Ok(deserialize_with) => deserialize_with.0,
5235										Err(err) => {
5236											return Err(err);
5237										}
5238									}
5239								});
5240							}
5241							Field::NumberOfSeasons => {
5242								if r#number_of_seasons_property.is_some() {
5243									return Err(<A::Error as de::Error>::duplicate_field(
5244										"numberOfSeasons",
5245									));
5246								}
5247								r#number_of_seasons_property = Some({
5248									struct DeserializeWith(Vec<NumberOfSeasonsProperty>);
5249									impl<'de> Deserialize<'de> for DeserializeWith {
5250										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5251										where
5252											D: Deserializer<'de>,
5253										{
5254											Ok(DeserializeWith(serde_with::As::<
5255												serde_with::OneOrMany<serde_with::Same>,
5256											>::deserialize(deserializer)?))
5257										}
5258									}
5259									match map.next_value::<DeserializeWith>() {
5260										Ok(deserialize_with) => deserialize_with.0,
5261										Err(err) => {
5262											return Err(err);
5263										}
5264									}
5265								});
5266							}
5267							Field::PlayMode => {
5268								if r#play_mode_property.is_some() {
5269									return Err(<A::Error as de::Error>::duplicate_field(
5270										"playMode",
5271									));
5272								}
5273								r#play_mode_property = Some({
5274									struct DeserializeWith(Vec<PlayModeProperty>);
5275									impl<'de> Deserialize<'de> for DeserializeWith {
5276										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5277										where
5278											D: Deserializer<'de>,
5279										{
5280											Ok(DeserializeWith(serde_with::As::<
5281												serde_with::OneOrMany<serde_with::Same>,
5282											>::deserialize(deserializer)?))
5283										}
5284									}
5285									match map.next_value::<DeserializeWith>() {
5286										Ok(deserialize_with) => deserialize_with.0,
5287										Err(err) => {
5288											return Err(err);
5289										}
5290									}
5291								});
5292							}
5293							Field::ProductionCompany => {
5294								if r#production_company_property.is_some() {
5295									return Err(<A::Error as de::Error>::duplicate_field(
5296										"productionCompany",
5297									));
5298								}
5299								r#production_company_property = Some({
5300									struct DeserializeWith(Vec<ProductionCompanyProperty>);
5301									impl<'de> Deserialize<'de> for DeserializeWith {
5302										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5303										where
5304											D: Deserializer<'de>,
5305										{
5306											Ok(DeserializeWith(serde_with::As::<
5307												serde_with::OneOrMany<serde_with::Same>,
5308											>::deserialize(deserializer)?))
5309										}
5310									}
5311									match map.next_value::<DeserializeWith>() {
5312										Ok(deserialize_with) => deserialize_with.0,
5313										Err(err) => {
5314											return Err(err);
5315										}
5316									}
5317								});
5318							}
5319							Field::Quest => {
5320								if r#quest_property.is_some() {
5321									return Err(<A::Error as de::Error>::duplicate_field("quest"));
5322								}
5323								r#quest_property = Some({
5324									struct DeserializeWith(Vec<QuestProperty>);
5325									impl<'de> Deserialize<'de> for DeserializeWith {
5326										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5327										where
5328											D: Deserializer<'de>,
5329										{
5330											Ok(DeserializeWith(serde_with::As::<
5331												serde_with::OneOrMany<serde_with::Same>,
5332											>::deserialize(deserializer)?))
5333										}
5334									}
5335									match map.next_value::<DeserializeWith>() {
5336										Ok(deserialize_with) => deserialize_with.0,
5337										Err(err) => {
5338											return Err(err);
5339										}
5340									}
5341								});
5342							}
5343							Field::Season => {
5344								if r#season_property.is_some() {
5345									return Err(<A::Error as de::Error>::duplicate_field("season"));
5346								}
5347								r#season_property = Some({
5348									struct DeserializeWith(Vec<SeasonProperty>);
5349									impl<'de> Deserialize<'de> for DeserializeWith {
5350										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5351										where
5352											D: Deserializer<'de>,
5353										{
5354											Ok(DeserializeWith(serde_with::As::<
5355												serde_with::OneOrMany<serde_with::Same>,
5356											>::deserialize(deserializer)?))
5357										}
5358									}
5359									match map.next_value::<DeserializeWith>() {
5360										Ok(deserialize_with) => deserialize_with.0,
5361										Err(err) => {
5362											return Err(err);
5363										}
5364									}
5365								});
5366							}
5367							Field::Seasons => {
5368								if r#seasons_property.is_some() {
5369									return Err(<A::Error as de::Error>::duplicate_field(
5370										"seasons",
5371									));
5372								}
5373								r#seasons_property = Some({
5374									struct DeserializeWith(Vec<SeasonsProperty>);
5375									impl<'de> Deserialize<'de> for DeserializeWith {
5376										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5377										where
5378											D: Deserializer<'de>,
5379										{
5380											Ok(DeserializeWith(serde_with::As::<
5381												serde_with::OneOrMany<serde_with::Same>,
5382											>::deserialize(deserializer)?))
5383										}
5384									}
5385									match map.next_value::<DeserializeWith>() {
5386										Ok(deserialize_with) => deserialize_with.0,
5387										Err(err) => {
5388											return Err(err);
5389										}
5390									}
5391								});
5392							}
5393							Field::Trailer => {
5394								if r#trailer_property.is_some() {
5395									return Err(<A::Error as de::Error>::duplicate_field(
5396										"trailer",
5397									));
5398								}
5399								r#trailer_property = Some({
5400									struct DeserializeWith(Vec<TrailerProperty>);
5401									impl<'de> Deserialize<'de> for DeserializeWith {
5402										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5403										where
5404											D: Deserializer<'de>,
5405										{
5406											Ok(DeserializeWith(serde_with::As::<
5407												serde_with::OneOrMany<serde_with::Same>,
5408											>::deserialize(deserializer)?))
5409										}
5410									}
5411									match map.next_value::<DeserializeWith>() {
5412										Ok(deserialize_with) => deserialize_with.0,
5413										Err(err) => {
5414											return Err(err);
5415										}
5416									}
5417								});
5418							}
5419							Field::About => {
5420								if r#about_property.is_some() {
5421									return Err(<A::Error as de::Error>::duplicate_field("about"));
5422								}
5423								r#about_property = Some({
5424									struct DeserializeWith(Vec<AboutProperty>);
5425									impl<'de> Deserialize<'de> for DeserializeWith {
5426										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5427										where
5428											D: Deserializer<'de>,
5429										{
5430											Ok(DeserializeWith(serde_with::As::<
5431												serde_with::OneOrMany<serde_with::Same>,
5432											>::deserialize(deserializer)?))
5433										}
5434									}
5435									match map.next_value::<DeserializeWith>() {
5436										Ok(deserialize_with) => deserialize_with.0,
5437										Err(err) => {
5438											return Err(err);
5439										}
5440									}
5441								});
5442							}
5443							Field::Abstract => {
5444								if r#abstract_property.is_some() {
5445									return Err(<A::Error as de::Error>::duplicate_field(
5446										"abstract",
5447									));
5448								}
5449								r#abstract_property = Some({
5450									struct DeserializeWith(Vec<AbstractProperty>);
5451									impl<'de> Deserialize<'de> for DeserializeWith {
5452										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5453										where
5454											D: Deserializer<'de>,
5455										{
5456											Ok(DeserializeWith(serde_with::As::<
5457												serde_with::OneOrMany<serde_with::Same>,
5458											>::deserialize(deserializer)?))
5459										}
5460									}
5461									match map.next_value::<DeserializeWith>() {
5462										Ok(deserialize_with) => deserialize_with.0,
5463										Err(err) => {
5464											return Err(err);
5465										}
5466									}
5467								});
5468							}
5469							Field::AccessMode => {
5470								if r#access_mode_property.is_some() {
5471									return Err(<A::Error as de::Error>::duplicate_field(
5472										"accessMode",
5473									));
5474								}
5475								r#access_mode_property = Some({
5476									struct DeserializeWith(Vec<AccessModeProperty>);
5477									impl<'de> Deserialize<'de> for DeserializeWith {
5478										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5479										where
5480											D: Deserializer<'de>,
5481										{
5482											Ok(DeserializeWith(serde_with::As::<
5483												serde_with::OneOrMany<serde_with::Same>,
5484											>::deserialize(deserializer)?))
5485										}
5486									}
5487									match map.next_value::<DeserializeWith>() {
5488										Ok(deserialize_with) => deserialize_with.0,
5489										Err(err) => {
5490											return Err(err);
5491										}
5492									}
5493								});
5494							}
5495							Field::AccessModeSufficient => {
5496								if r#access_mode_sufficient_property.is_some() {
5497									return Err(<A::Error as de::Error>::duplicate_field(
5498										"accessModeSufficient",
5499									));
5500								}
5501								r#access_mode_sufficient_property = Some({
5502									struct DeserializeWith(Vec<AccessModeSufficientProperty>);
5503									impl<'de> Deserialize<'de> for DeserializeWith {
5504										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5505										where
5506											D: Deserializer<'de>,
5507										{
5508											Ok(DeserializeWith(serde_with::As::<
5509												serde_with::OneOrMany<serde_with::Same>,
5510											>::deserialize(deserializer)?))
5511										}
5512									}
5513									match map.next_value::<DeserializeWith>() {
5514										Ok(deserialize_with) => deserialize_with.0,
5515										Err(err) => {
5516											return Err(err);
5517										}
5518									}
5519								});
5520							}
5521							Field::AccessibilityApi => {
5522								if r#accessibility_api_property.is_some() {
5523									return Err(<A::Error as de::Error>::duplicate_field(
5524										"accessibilityAPI",
5525									));
5526								}
5527								r#accessibility_api_property = Some({
5528									struct DeserializeWith(Vec<AccessibilityApiProperty>);
5529									impl<'de> Deserialize<'de> for DeserializeWith {
5530										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5531										where
5532											D: Deserializer<'de>,
5533										{
5534											Ok(DeserializeWith(serde_with::As::<
5535												serde_with::OneOrMany<serde_with::Same>,
5536											>::deserialize(deserializer)?))
5537										}
5538									}
5539									match map.next_value::<DeserializeWith>() {
5540										Ok(deserialize_with) => deserialize_with.0,
5541										Err(err) => {
5542											return Err(err);
5543										}
5544									}
5545								});
5546							}
5547							Field::AccessibilityControl => {
5548								if r#accessibility_control_property.is_some() {
5549									return Err(<A::Error as de::Error>::duplicate_field(
5550										"accessibilityControl",
5551									));
5552								}
5553								r#accessibility_control_property = Some({
5554									struct DeserializeWith(Vec<AccessibilityControlProperty>);
5555									impl<'de> Deserialize<'de> for DeserializeWith {
5556										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5557										where
5558											D: Deserializer<'de>,
5559										{
5560											Ok(DeserializeWith(serde_with::As::<
5561												serde_with::OneOrMany<serde_with::Same>,
5562											>::deserialize(deserializer)?))
5563										}
5564									}
5565									match map.next_value::<DeserializeWith>() {
5566										Ok(deserialize_with) => deserialize_with.0,
5567										Err(err) => {
5568											return Err(err);
5569										}
5570									}
5571								});
5572							}
5573							Field::AccessibilityFeature => {
5574								if r#accessibility_feature_property.is_some() {
5575									return Err(<A::Error as de::Error>::duplicate_field(
5576										"accessibilityFeature",
5577									));
5578								}
5579								r#accessibility_feature_property = Some({
5580									struct DeserializeWith(Vec<AccessibilityFeatureProperty>);
5581									impl<'de> Deserialize<'de> for DeserializeWith {
5582										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5583										where
5584											D: Deserializer<'de>,
5585										{
5586											Ok(DeserializeWith(serde_with::As::<
5587												serde_with::OneOrMany<serde_with::Same>,
5588											>::deserialize(deserializer)?))
5589										}
5590									}
5591									match map.next_value::<DeserializeWith>() {
5592										Ok(deserialize_with) => deserialize_with.0,
5593										Err(err) => {
5594											return Err(err);
5595										}
5596									}
5597								});
5598							}
5599							Field::AccessibilityHazard => {
5600								if r#accessibility_hazard_property.is_some() {
5601									return Err(<A::Error as de::Error>::duplicate_field(
5602										"accessibilityHazard",
5603									));
5604								}
5605								r#accessibility_hazard_property = Some({
5606									struct DeserializeWith(Vec<AccessibilityHazardProperty>);
5607									impl<'de> Deserialize<'de> for DeserializeWith {
5608										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5609										where
5610											D: Deserializer<'de>,
5611										{
5612											Ok(DeserializeWith(serde_with::As::<
5613												serde_with::OneOrMany<serde_with::Same>,
5614											>::deserialize(deserializer)?))
5615										}
5616									}
5617									match map.next_value::<DeserializeWith>() {
5618										Ok(deserialize_with) => deserialize_with.0,
5619										Err(err) => {
5620											return Err(err);
5621										}
5622									}
5623								});
5624							}
5625							Field::AccessibilitySummary => {
5626								if r#accessibility_summary_property.is_some() {
5627									return Err(<A::Error as de::Error>::duplicate_field(
5628										"accessibilitySummary",
5629									));
5630								}
5631								r#accessibility_summary_property = Some({
5632									struct DeserializeWith(Vec<AccessibilitySummaryProperty>);
5633									impl<'de> Deserialize<'de> for DeserializeWith {
5634										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5635										where
5636											D: Deserializer<'de>,
5637										{
5638											Ok(DeserializeWith(serde_with::As::<
5639												serde_with::OneOrMany<serde_with::Same>,
5640											>::deserialize(deserializer)?))
5641										}
5642									}
5643									match map.next_value::<DeserializeWith>() {
5644										Ok(deserialize_with) => deserialize_with.0,
5645										Err(err) => {
5646											return Err(err);
5647										}
5648									}
5649								});
5650							}
5651							Field::AccountablePerson => {
5652								if r#accountable_person_property.is_some() {
5653									return Err(<A::Error as de::Error>::duplicate_field(
5654										"accountablePerson",
5655									));
5656								}
5657								r#accountable_person_property = Some({
5658									struct DeserializeWith(Vec<AccountablePersonProperty>);
5659									impl<'de> Deserialize<'de> for DeserializeWith {
5660										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5661										where
5662											D: Deserializer<'de>,
5663										{
5664											Ok(DeserializeWith(serde_with::As::<
5665												serde_with::OneOrMany<serde_with::Same>,
5666											>::deserialize(deserializer)?))
5667										}
5668									}
5669									match map.next_value::<DeserializeWith>() {
5670										Ok(deserialize_with) => deserialize_with.0,
5671										Err(err) => {
5672											return Err(err);
5673										}
5674									}
5675								});
5676							}
5677							Field::AcquireLicensePage => {
5678								if r#acquire_license_page_property.is_some() {
5679									return Err(<A::Error as de::Error>::duplicate_field(
5680										"acquireLicensePage",
5681									));
5682								}
5683								r#acquire_license_page_property = Some({
5684									struct DeserializeWith(Vec<AcquireLicensePageProperty>);
5685									impl<'de> Deserialize<'de> for DeserializeWith {
5686										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5687										where
5688											D: Deserializer<'de>,
5689										{
5690											Ok(DeserializeWith(serde_with::As::<
5691												serde_with::OneOrMany<serde_with::Same>,
5692											>::deserialize(deserializer)?))
5693										}
5694									}
5695									match map.next_value::<DeserializeWith>() {
5696										Ok(deserialize_with) => deserialize_with.0,
5697										Err(err) => {
5698											return Err(err);
5699										}
5700									}
5701								});
5702							}
5703							Field::AggregateRating => {
5704								if r#aggregate_rating_property.is_some() {
5705									return Err(<A::Error as de::Error>::duplicate_field(
5706										"aggregateRating",
5707									));
5708								}
5709								r#aggregate_rating_property = Some({
5710									struct DeserializeWith(Vec<AggregateRatingProperty>);
5711									impl<'de> Deserialize<'de> for DeserializeWith {
5712										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5713										where
5714											D: Deserializer<'de>,
5715										{
5716											Ok(DeserializeWith(serde_with::As::<
5717												serde_with::OneOrMany<serde_with::Same>,
5718											>::deserialize(deserializer)?))
5719										}
5720									}
5721									match map.next_value::<DeserializeWith>() {
5722										Ok(deserialize_with) => deserialize_with.0,
5723										Err(err) => {
5724											return Err(err);
5725										}
5726									}
5727								});
5728							}
5729							Field::AlternativeHeadline => {
5730								if r#alternative_headline_property.is_some() {
5731									return Err(<A::Error as de::Error>::duplicate_field(
5732										"alternativeHeadline",
5733									));
5734								}
5735								r#alternative_headline_property = Some({
5736									struct DeserializeWith(Vec<AlternativeHeadlineProperty>);
5737									impl<'de> Deserialize<'de> for DeserializeWith {
5738										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5739										where
5740											D: Deserializer<'de>,
5741										{
5742											Ok(DeserializeWith(serde_with::As::<
5743												serde_with::OneOrMany<serde_with::Same>,
5744											>::deserialize(deserializer)?))
5745										}
5746									}
5747									match map.next_value::<DeserializeWith>() {
5748										Ok(deserialize_with) => deserialize_with.0,
5749										Err(err) => {
5750											return Err(err);
5751										}
5752									}
5753								});
5754							}
5755							Field::ArchivedAt => {
5756								if r#archived_at_property.is_some() {
5757									return Err(<A::Error as de::Error>::duplicate_field(
5758										"archivedAt",
5759									));
5760								}
5761								r#archived_at_property = Some({
5762									struct DeserializeWith(Vec<ArchivedAtProperty>);
5763									impl<'de> Deserialize<'de> for DeserializeWith {
5764										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5765										where
5766											D: Deserializer<'de>,
5767										{
5768											Ok(DeserializeWith(serde_with::As::<
5769												serde_with::OneOrMany<serde_with::Same>,
5770											>::deserialize(deserializer)?))
5771										}
5772									}
5773									match map.next_value::<DeserializeWith>() {
5774										Ok(deserialize_with) => deserialize_with.0,
5775										Err(err) => {
5776											return Err(err);
5777										}
5778									}
5779								});
5780							}
5781							Field::Assesses => {
5782								if r#assesses_property.is_some() {
5783									return Err(<A::Error as de::Error>::duplicate_field(
5784										"assesses",
5785									));
5786								}
5787								r#assesses_property = Some({
5788									struct DeserializeWith(Vec<AssessesProperty>);
5789									impl<'de> Deserialize<'de> for DeserializeWith {
5790										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5791										where
5792											D: Deserializer<'de>,
5793										{
5794											Ok(DeserializeWith(serde_with::As::<
5795												serde_with::OneOrMany<serde_with::Same>,
5796											>::deserialize(deserializer)?))
5797										}
5798									}
5799									match map.next_value::<DeserializeWith>() {
5800										Ok(deserialize_with) => deserialize_with.0,
5801										Err(err) => {
5802											return Err(err);
5803										}
5804									}
5805								});
5806							}
5807							Field::AssociatedMedia => {
5808								if r#associated_media_property.is_some() {
5809									return Err(<A::Error as de::Error>::duplicate_field(
5810										"associatedMedia",
5811									));
5812								}
5813								r#associated_media_property = Some({
5814									struct DeserializeWith(Vec<AssociatedMediaProperty>);
5815									impl<'de> Deserialize<'de> for DeserializeWith {
5816										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5817										where
5818											D: Deserializer<'de>,
5819										{
5820											Ok(DeserializeWith(serde_with::As::<
5821												serde_with::OneOrMany<serde_with::Same>,
5822											>::deserialize(deserializer)?))
5823										}
5824									}
5825									match map.next_value::<DeserializeWith>() {
5826										Ok(deserialize_with) => deserialize_with.0,
5827										Err(err) => {
5828											return Err(err);
5829										}
5830									}
5831								});
5832							}
5833							Field::Audience => {
5834								if r#audience_property.is_some() {
5835									return Err(<A::Error as de::Error>::duplicate_field(
5836										"audience",
5837									));
5838								}
5839								r#audience_property = Some({
5840									struct DeserializeWith(Vec<AudienceProperty>);
5841									impl<'de> Deserialize<'de> for DeserializeWith {
5842										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5843										where
5844											D: Deserializer<'de>,
5845										{
5846											Ok(DeserializeWith(serde_with::As::<
5847												serde_with::OneOrMany<serde_with::Same>,
5848											>::deserialize(deserializer)?))
5849										}
5850									}
5851									match map.next_value::<DeserializeWith>() {
5852										Ok(deserialize_with) => deserialize_with.0,
5853										Err(err) => {
5854											return Err(err);
5855										}
5856									}
5857								});
5858							}
5859							Field::Audio => {
5860								if r#audio_property.is_some() {
5861									return Err(<A::Error as de::Error>::duplicate_field("audio"));
5862								}
5863								r#audio_property = Some({
5864									struct DeserializeWith(Vec<AudioProperty>);
5865									impl<'de> Deserialize<'de> for DeserializeWith {
5866										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5867										where
5868											D: Deserializer<'de>,
5869										{
5870											Ok(DeserializeWith(serde_with::As::<
5871												serde_with::OneOrMany<serde_with::Same>,
5872											>::deserialize(deserializer)?))
5873										}
5874									}
5875									match map.next_value::<DeserializeWith>() {
5876										Ok(deserialize_with) => deserialize_with.0,
5877										Err(err) => {
5878											return Err(err);
5879										}
5880									}
5881								});
5882							}
5883							Field::Author => {
5884								if r#author_property.is_some() {
5885									return Err(<A::Error as de::Error>::duplicate_field("author"));
5886								}
5887								r#author_property = Some({
5888									struct DeserializeWith(Vec<AuthorProperty>);
5889									impl<'de> Deserialize<'de> for DeserializeWith {
5890										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5891										where
5892											D: Deserializer<'de>,
5893										{
5894											Ok(DeserializeWith(serde_with::As::<
5895												serde_with::OneOrMany<serde_with::Same>,
5896											>::deserialize(deserializer)?))
5897										}
5898									}
5899									match map.next_value::<DeserializeWith>() {
5900										Ok(deserialize_with) => deserialize_with.0,
5901										Err(err) => {
5902											return Err(err);
5903										}
5904									}
5905								});
5906							}
5907							Field::Award => {
5908								if r#award_property.is_some() {
5909									return Err(<A::Error as de::Error>::duplicate_field("award"));
5910								}
5911								r#award_property = Some({
5912									struct DeserializeWith(Vec<AwardProperty>);
5913									impl<'de> Deserialize<'de> for DeserializeWith {
5914										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5915										where
5916											D: Deserializer<'de>,
5917										{
5918											Ok(DeserializeWith(serde_with::As::<
5919												serde_with::OneOrMany<serde_with::Same>,
5920											>::deserialize(deserializer)?))
5921										}
5922									}
5923									match map.next_value::<DeserializeWith>() {
5924										Ok(deserialize_with) => deserialize_with.0,
5925										Err(err) => {
5926											return Err(err);
5927										}
5928									}
5929								});
5930							}
5931							Field::Awards => {
5932								if r#awards_property.is_some() {
5933									return Err(<A::Error as de::Error>::duplicate_field("awards"));
5934								}
5935								r#awards_property = Some({
5936									struct DeserializeWith(Vec<AwardsProperty>);
5937									impl<'de> Deserialize<'de> for DeserializeWith {
5938										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5939										where
5940											D: Deserializer<'de>,
5941										{
5942											Ok(DeserializeWith(serde_with::As::<
5943												serde_with::OneOrMany<serde_with::Same>,
5944											>::deserialize(deserializer)?))
5945										}
5946									}
5947									match map.next_value::<DeserializeWith>() {
5948										Ok(deserialize_with) => deserialize_with.0,
5949										Err(err) => {
5950											return Err(err);
5951										}
5952									}
5953								});
5954							}
5955							Field::Character => {
5956								if r#character_property.is_some() {
5957									return Err(<A::Error as de::Error>::duplicate_field(
5958										"character",
5959									));
5960								}
5961								r#character_property = Some({
5962									struct DeserializeWith(Vec<CharacterProperty>);
5963									impl<'de> Deserialize<'de> for DeserializeWith {
5964										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5965										where
5966											D: Deserializer<'de>,
5967										{
5968											Ok(DeserializeWith(serde_with::As::<
5969												serde_with::OneOrMany<serde_with::Same>,
5970											>::deserialize(deserializer)?))
5971										}
5972									}
5973									match map.next_value::<DeserializeWith>() {
5974										Ok(deserialize_with) => deserialize_with.0,
5975										Err(err) => {
5976											return Err(err);
5977										}
5978									}
5979								});
5980							}
5981							Field::Citation => {
5982								if r#citation_property.is_some() {
5983									return Err(<A::Error as de::Error>::duplicate_field(
5984										"citation",
5985									));
5986								}
5987								r#citation_property = Some({
5988									struct DeserializeWith(Vec<CitationProperty>);
5989									impl<'de> Deserialize<'de> for DeserializeWith {
5990										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5991										where
5992											D: Deserializer<'de>,
5993										{
5994											Ok(DeserializeWith(serde_with::As::<
5995												serde_with::OneOrMany<serde_with::Same>,
5996											>::deserialize(deserializer)?))
5997										}
5998									}
5999									match map.next_value::<DeserializeWith>() {
6000										Ok(deserialize_with) => deserialize_with.0,
6001										Err(err) => {
6002											return Err(err);
6003										}
6004									}
6005								});
6006							}
6007							Field::Comment => {
6008								if r#comment_property.is_some() {
6009									return Err(<A::Error as de::Error>::duplicate_field(
6010										"comment",
6011									));
6012								}
6013								r#comment_property = Some({
6014									struct DeserializeWith(Vec<CommentProperty>);
6015									impl<'de> Deserialize<'de> for DeserializeWith {
6016										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6017										where
6018											D: Deserializer<'de>,
6019										{
6020											Ok(DeserializeWith(serde_with::As::<
6021												serde_with::OneOrMany<serde_with::Same>,
6022											>::deserialize(deserializer)?))
6023										}
6024									}
6025									match map.next_value::<DeserializeWith>() {
6026										Ok(deserialize_with) => deserialize_with.0,
6027										Err(err) => {
6028											return Err(err);
6029										}
6030									}
6031								});
6032							}
6033							Field::CommentCount => {
6034								if r#comment_count_property.is_some() {
6035									return Err(<A::Error as de::Error>::duplicate_field(
6036										"commentCount",
6037									));
6038								}
6039								r#comment_count_property = Some({
6040									struct DeserializeWith(Vec<CommentCountProperty>);
6041									impl<'de> Deserialize<'de> for DeserializeWith {
6042										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6043										where
6044											D: Deserializer<'de>,
6045										{
6046											Ok(DeserializeWith(serde_with::As::<
6047												serde_with::OneOrMany<serde_with::Same>,
6048											>::deserialize(deserializer)?))
6049										}
6050									}
6051									match map.next_value::<DeserializeWith>() {
6052										Ok(deserialize_with) => deserialize_with.0,
6053										Err(err) => {
6054											return Err(err);
6055										}
6056									}
6057								});
6058							}
6059							Field::ConditionsOfAccess => {
6060								if r#conditions_of_access_property.is_some() {
6061									return Err(<A::Error as de::Error>::duplicate_field(
6062										"conditionsOfAccess",
6063									));
6064								}
6065								r#conditions_of_access_property = Some({
6066									struct DeserializeWith(Vec<ConditionsOfAccessProperty>);
6067									impl<'de> Deserialize<'de> for DeserializeWith {
6068										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6069										where
6070											D: Deserializer<'de>,
6071										{
6072											Ok(DeserializeWith(serde_with::As::<
6073												serde_with::OneOrMany<serde_with::Same>,
6074											>::deserialize(deserializer)?))
6075										}
6076									}
6077									match map.next_value::<DeserializeWith>() {
6078										Ok(deserialize_with) => deserialize_with.0,
6079										Err(err) => {
6080											return Err(err);
6081										}
6082									}
6083								});
6084							}
6085							Field::ContentLocation => {
6086								if r#content_location_property.is_some() {
6087									return Err(<A::Error as de::Error>::duplicate_field(
6088										"contentLocation",
6089									));
6090								}
6091								r#content_location_property = Some({
6092									struct DeserializeWith(Vec<ContentLocationProperty>);
6093									impl<'de> Deserialize<'de> for DeserializeWith {
6094										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6095										where
6096											D: Deserializer<'de>,
6097										{
6098											Ok(DeserializeWith(serde_with::As::<
6099												serde_with::OneOrMany<serde_with::Same>,
6100											>::deserialize(deserializer)?))
6101										}
6102									}
6103									match map.next_value::<DeserializeWith>() {
6104										Ok(deserialize_with) => deserialize_with.0,
6105										Err(err) => {
6106											return Err(err);
6107										}
6108									}
6109								});
6110							}
6111							Field::ContentRating => {
6112								if r#content_rating_property.is_some() {
6113									return Err(<A::Error as de::Error>::duplicate_field(
6114										"contentRating",
6115									));
6116								}
6117								r#content_rating_property = Some({
6118									struct DeserializeWith(Vec<ContentRatingProperty>);
6119									impl<'de> Deserialize<'de> for DeserializeWith {
6120										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6121										where
6122											D: Deserializer<'de>,
6123										{
6124											Ok(DeserializeWith(serde_with::As::<
6125												serde_with::OneOrMany<serde_with::Same>,
6126											>::deserialize(deserializer)?))
6127										}
6128									}
6129									match map.next_value::<DeserializeWith>() {
6130										Ok(deserialize_with) => deserialize_with.0,
6131										Err(err) => {
6132											return Err(err);
6133										}
6134									}
6135								});
6136							}
6137							Field::ContentReferenceTime => {
6138								if r#content_reference_time_property.is_some() {
6139									return Err(<A::Error as de::Error>::duplicate_field(
6140										"contentReferenceTime",
6141									));
6142								}
6143								r#content_reference_time_property = Some({
6144									struct DeserializeWith(Vec<ContentReferenceTimeProperty>);
6145									impl<'de> Deserialize<'de> for DeserializeWith {
6146										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6147										where
6148											D: Deserializer<'de>,
6149										{
6150											Ok(DeserializeWith(serde_with::As::<
6151												serde_with::OneOrMany<serde_with::Same>,
6152											>::deserialize(deserializer)?))
6153										}
6154									}
6155									match map.next_value::<DeserializeWith>() {
6156										Ok(deserialize_with) => deserialize_with.0,
6157										Err(err) => {
6158											return Err(err);
6159										}
6160									}
6161								});
6162							}
6163							Field::Contributor => {
6164								if r#contributor_property.is_some() {
6165									return Err(<A::Error as de::Error>::duplicate_field(
6166										"contributor",
6167									));
6168								}
6169								r#contributor_property = Some({
6170									struct DeserializeWith(Vec<ContributorProperty>);
6171									impl<'de> Deserialize<'de> for DeserializeWith {
6172										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6173										where
6174											D: Deserializer<'de>,
6175										{
6176											Ok(DeserializeWith(serde_with::As::<
6177												serde_with::OneOrMany<serde_with::Same>,
6178											>::deserialize(deserializer)?))
6179										}
6180									}
6181									match map.next_value::<DeserializeWith>() {
6182										Ok(deserialize_with) => deserialize_with.0,
6183										Err(err) => {
6184											return Err(err);
6185										}
6186									}
6187								});
6188							}
6189							Field::CopyrightHolder => {
6190								if r#copyright_holder_property.is_some() {
6191									return Err(<A::Error as de::Error>::duplicate_field(
6192										"copyrightHolder",
6193									));
6194								}
6195								r#copyright_holder_property = Some({
6196									struct DeserializeWith(Vec<CopyrightHolderProperty>);
6197									impl<'de> Deserialize<'de> for DeserializeWith {
6198										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6199										where
6200											D: Deserializer<'de>,
6201										{
6202											Ok(DeserializeWith(serde_with::As::<
6203												serde_with::OneOrMany<serde_with::Same>,
6204											>::deserialize(deserializer)?))
6205										}
6206									}
6207									match map.next_value::<DeserializeWith>() {
6208										Ok(deserialize_with) => deserialize_with.0,
6209										Err(err) => {
6210											return Err(err);
6211										}
6212									}
6213								});
6214							}
6215							Field::CopyrightNotice => {
6216								if r#copyright_notice_property.is_some() {
6217									return Err(<A::Error as de::Error>::duplicate_field(
6218										"copyrightNotice",
6219									));
6220								}
6221								r#copyright_notice_property = Some({
6222									struct DeserializeWith(Vec<CopyrightNoticeProperty>);
6223									impl<'de> Deserialize<'de> for DeserializeWith {
6224										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6225										where
6226											D: Deserializer<'de>,
6227										{
6228											Ok(DeserializeWith(serde_with::As::<
6229												serde_with::OneOrMany<serde_with::Same>,
6230											>::deserialize(deserializer)?))
6231										}
6232									}
6233									match map.next_value::<DeserializeWith>() {
6234										Ok(deserialize_with) => deserialize_with.0,
6235										Err(err) => {
6236											return Err(err);
6237										}
6238									}
6239								});
6240							}
6241							Field::CopyrightYear => {
6242								if r#copyright_year_property.is_some() {
6243									return Err(<A::Error as de::Error>::duplicate_field(
6244										"copyrightYear",
6245									));
6246								}
6247								r#copyright_year_property = Some({
6248									struct DeserializeWith(Vec<CopyrightYearProperty>);
6249									impl<'de> Deserialize<'de> for DeserializeWith {
6250										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6251										where
6252											D: Deserializer<'de>,
6253										{
6254											Ok(DeserializeWith(serde_with::As::<
6255												serde_with::OneOrMany<serde_with::Same>,
6256											>::deserialize(deserializer)?))
6257										}
6258									}
6259									match map.next_value::<DeserializeWith>() {
6260										Ok(deserialize_with) => deserialize_with.0,
6261										Err(err) => {
6262											return Err(err);
6263										}
6264									}
6265								});
6266							}
6267							Field::Correction => {
6268								if r#correction_property.is_some() {
6269									return Err(<A::Error as de::Error>::duplicate_field(
6270										"correction",
6271									));
6272								}
6273								r#correction_property = Some({
6274									struct DeserializeWith(Vec<CorrectionProperty>);
6275									impl<'de> Deserialize<'de> for DeserializeWith {
6276										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6277										where
6278											D: Deserializer<'de>,
6279										{
6280											Ok(DeserializeWith(serde_with::As::<
6281												serde_with::OneOrMany<serde_with::Same>,
6282											>::deserialize(deserializer)?))
6283										}
6284									}
6285									match map.next_value::<DeserializeWith>() {
6286										Ok(deserialize_with) => deserialize_with.0,
6287										Err(err) => {
6288											return Err(err);
6289										}
6290									}
6291								});
6292							}
6293							Field::CountryOfOrigin => {
6294								if r#country_of_origin_property.is_some() {
6295									return Err(<A::Error as de::Error>::duplicate_field(
6296										"countryOfOrigin",
6297									));
6298								}
6299								r#country_of_origin_property = Some({
6300									struct DeserializeWith(Vec<CountryOfOriginProperty>);
6301									impl<'de> Deserialize<'de> for DeserializeWith {
6302										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6303										where
6304											D: Deserializer<'de>,
6305										{
6306											Ok(DeserializeWith(serde_with::As::<
6307												serde_with::OneOrMany<serde_with::Same>,
6308											>::deserialize(deserializer)?))
6309										}
6310									}
6311									match map.next_value::<DeserializeWith>() {
6312										Ok(deserialize_with) => deserialize_with.0,
6313										Err(err) => {
6314											return Err(err);
6315										}
6316									}
6317								});
6318							}
6319							Field::CreativeWorkStatus => {
6320								if r#creative_work_status_property.is_some() {
6321									return Err(<A::Error as de::Error>::duplicate_field(
6322										"creativeWorkStatus",
6323									));
6324								}
6325								r#creative_work_status_property = Some({
6326									struct DeserializeWith(Vec<CreativeWorkStatusProperty>);
6327									impl<'de> Deserialize<'de> for DeserializeWith {
6328										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6329										where
6330											D: Deserializer<'de>,
6331										{
6332											Ok(DeserializeWith(serde_with::As::<
6333												serde_with::OneOrMany<serde_with::Same>,
6334											>::deserialize(deserializer)?))
6335										}
6336									}
6337									match map.next_value::<DeserializeWith>() {
6338										Ok(deserialize_with) => deserialize_with.0,
6339										Err(err) => {
6340											return Err(err);
6341										}
6342									}
6343								});
6344							}
6345							Field::Creator => {
6346								if r#creator_property.is_some() {
6347									return Err(<A::Error as de::Error>::duplicate_field(
6348										"creator",
6349									));
6350								}
6351								r#creator_property = Some({
6352									struct DeserializeWith(Vec<CreatorProperty>);
6353									impl<'de> Deserialize<'de> for DeserializeWith {
6354										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6355										where
6356											D: Deserializer<'de>,
6357										{
6358											Ok(DeserializeWith(serde_with::As::<
6359												serde_with::OneOrMany<serde_with::Same>,
6360											>::deserialize(deserializer)?))
6361										}
6362									}
6363									match map.next_value::<DeserializeWith>() {
6364										Ok(deserialize_with) => deserialize_with.0,
6365										Err(err) => {
6366											return Err(err);
6367										}
6368									}
6369								});
6370							}
6371							Field::CreditText => {
6372								if r#credit_text_property.is_some() {
6373									return Err(<A::Error as de::Error>::duplicate_field(
6374										"creditText",
6375									));
6376								}
6377								r#credit_text_property = Some({
6378									struct DeserializeWith(Vec<CreditTextProperty>);
6379									impl<'de> Deserialize<'de> for DeserializeWith {
6380										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6381										where
6382											D: Deserializer<'de>,
6383										{
6384											Ok(DeserializeWith(serde_with::As::<
6385												serde_with::OneOrMany<serde_with::Same>,
6386											>::deserialize(deserializer)?))
6387										}
6388									}
6389									match map.next_value::<DeserializeWith>() {
6390										Ok(deserialize_with) => deserialize_with.0,
6391										Err(err) => {
6392											return Err(err);
6393										}
6394									}
6395								});
6396							}
6397							Field::DateCreated => {
6398								if r#date_created_property.is_some() {
6399									return Err(<A::Error as de::Error>::duplicate_field(
6400										"dateCreated",
6401									));
6402								}
6403								r#date_created_property = Some({
6404									struct DeserializeWith(Vec<DateCreatedProperty>);
6405									impl<'de> Deserialize<'de> for DeserializeWith {
6406										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6407										where
6408											D: Deserializer<'de>,
6409										{
6410											Ok(DeserializeWith(serde_with::As::<
6411												serde_with::OneOrMany<serde_with::Same>,
6412											>::deserialize(deserializer)?))
6413										}
6414									}
6415									match map.next_value::<DeserializeWith>() {
6416										Ok(deserialize_with) => deserialize_with.0,
6417										Err(err) => {
6418											return Err(err);
6419										}
6420									}
6421								});
6422							}
6423							Field::DateModified => {
6424								if r#date_modified_property.is_some() {
6425									return Err(<A::Error as de::Error>::duplicate_field(
6426										"dateModified",
6427									));
6428								}
6429								r#date_modified_property = Some({
6430									struct DeserializeWith(Vec<DateModifiedProperty>);
6431									impl<'de> Deserialize<'de> for DeserializeWith {
6432										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6433										where
6434											D: Deserializer<'de>,
6435										{
6436											Ok(DeserializeWith(serde_with::As::<
6437												serde_with::OneOrMany<serde_with::Same>,
6438											>::deserialize(deserializer)?))
6439										}
6440									}
6441									match map.next_value::<DeserializeWith>() {
6442										Ok(deserialize_with) => deserialize_with.0,
6443										Err(err) => {
6444											return Err(err);
6445										}
6446									}
6447								});
6448							}
6449							Field::DatePublished => {
6450								if r#date_published_property.is_some() {
6451									return Err(<A::Error as de::Error>::duplicate_field(
6452										"datePublished",
6453									));
6454								}
6455								r#date_published_property = Some({
6456									struct DeserializeWith(Vec<DatePublishedProperty>);
6457									impl<'de> Deserialize<'de> for DeserializeWith {
6458										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6459										where
6460											D: Deserializer<'de>,
6461										{
6462											Ok(DeserializeWith(serde_with::As::<
6463												serde_with::OneOrMany<serde_with::Same>,
6464											>::deserialize(deserializer)?))
6465										}
6466									}
6467									match map.next_value::<DeserializeWith>() {
6468										Ok(deserialize_with) => deserialize_with.0,
6469										Err(err) => {
6470											return Err(err);
6471										}
6472									}
6473								});
6474							}
6475							Field::DiscussionUrl => {
6476								if r#discussion_url_property.is_some() {
6477									return Err(<A::Error as de::Error>::duplicate_field(
6478										"discussionUrl",
6479									));
6480								}
6481								r#discussion_url_property = Some({
6482									struct DeserializeWith(Vec<DiscussionUrlProperty>);
6483									impl<'de> Deserialize<'de> for DeserializeWith {
6484										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6485										where
6486											D: Deserializer<'de>,
6487										{
6488											Ok(DeserializeWith(serde_with::As::<
6489												serde_with::OneOrMany<serde_with::Same>,
6490											>::deserialize(deserializer)?))
6491										}
6492									}
6493									match map.next_value::<DeserializeWith>() {
6494										Ok(deserialize_with) => deserialize_with.0,
6495										Err(err) => {
6496											return Err(err);
6497										}
6498									}
6499								});
6500							}
6501							Field::EditEidr => {
6502								if r#edit_eidr_property.is_some() {
6503									return Err(<A::Error as de::Error>::duplicate_field(
6504										"editEIDR",
6505									));
6506								}
6507								r#edit_eidr_property = Some({
6508									struct DeserializeWith(Vec<EditEidrProperty>);
6509									impl<'de> Deserialize<'de> for DeserializeWith {
6510										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6511										where
6512											D: Deserializer<'de>,
6513										{
6514											Ok(DeserializeWith(serde_with::As::<
6515												serde_with::OneOrMany<serde_with::Same>,
6516											>::deserialize(deserializer)?))
6517										}
6518									}
6519									match map.next_value::<DeserializeWith>() {
6520										Ok(deserialize_with) => deserialize_with.0,
6521										Err(err) => {
6522											return Err(err);
6523										}
6524									}
6525								});
6526							}
6527							Field::Editor => {
6528								if r#editor_property.is_some() {
6529									return Err(<A::Error as de::Error>::duplicate_field("editor"));
6530								}
6531								r#editor_property = Some({
6532									struct DeserializeWith(Vec<EditorProperty>);
6533									impl<'de> Deserialize<'de> for DeserializeWith {
6534										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6535										where
6536											D: Deserializer<'de>,
6537										{
6538											Ok(DeserializeWith(serde_with::As::<
6539												serde_with::OneOrMany<serde_with::Same>,
6540											>::deserialize(deserializer)?))
6541										}
6542									}
6543									match map.next_value::<DeserializeWith>() {
6544										Ok(deserialize_with) => deserialize_with.0,
6545										Err(err) => {
6546											return Err(err);
6547										}
6548									}
6549								});
6550							}
6551							Field::EducationalAlignment => {
6552								if r#educational_alignment_property.is_some() {
6553									return Err(<A::Error as de::Error>::duplicate_field(
6554										"educationalAlignment",
6555									));
6556								}
6557								r#educational_alignment_property = Some({
6558									struct DeserializeWith(Vec<EducationalAlignmentProperty>);
6559									impl<'de> Deserialize<'de> for DeserializeWith {
6560										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6561										where
6562											D: Deserializer<'de>,
6563										{
6564											Ok(DeserializeWith(serde_with::As::<
6565												serde_with::OneOrMany<serde_with::Same>,
6566											>::deserialize(deserializer)?))
6567										}
6568									}
6569									match map.next_value::<DeserializeWith>() {
6570										Ok(deserialize_with) => deserialize_with.0,
6571										Err(err) => {
6572											return Err(err);
6573										}
6574									}
6575								});
6576							}
6577							Field::EducationalLevel => {
6578								if r#educational_level_property.is_some() {
6579									return Err(<A::Error as de::Error>::duplicate_field(
6580										"educationalLevel",
6581									));
6582								}
6583								r#educational_level_property = Some({
6584									struct DeserializeWith(Vec<EducationalLevelProperty>);
6585									impl<'de> Deserialize<'de> for DeserializeWith {
6586										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6587										where
6588											D: Deserializer<'de>,
6589										{
6590											Ok(DeserializeWith(serde_with::As::<
6591												serde_with::OneOrMany<serde_with::Same>,
6592											>::deserialize(deserializer)?))
6593										}
6594									}
6595									match map.next_value::<DeserializeWith>() {
6596										Ok(deserialize_with) => deserialize_with.0,
6597										Err(err) => {
6598											return Err(err);
6599										}
6600									}
6601								});
6602							}
6603							Field::EducationalUse => {
6604								if r#educational_use_property.is_some() {
6605									return Err(<A::Error as de::Error>::duplicate_field(
6606										"educationalUse",
6607									));
6608								}
6609								r#educational_use_property = Some({
6610									struct DeserializeWith(Vec<EducationalUseProperty>);
6611									impl<'de> Deserialize<'de> for DeserializeWith {
6612										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6613										where
6614											D: Deserializer<'de>,
6615										{
6616											Ok(DeserializeWith(serde_with::As::<
6617												serde_with::OneOrMany<serde_with::Same>,
6618											>::deserialize(deserializer)?))
6619										}
6620									}
6621									match map.next_value::<DeserializeWith>() {
6622										Ok(deserialize_with) => deserialize_with.0,
6623										Err(err) => {
6624											return Err(err);
6625										}
6626									}
6627								});
6628							}
6629							Field::Encoding => {
6630								if r#encoding_property.is_some() {
6631									return Err(<A::Error as de::Error>::duplicate_field(
6632										"encoding",
6633									));
6634								}
6635								r#encoding_property = Some({
6636									struct DeserializeWith(Vec<EncodingProperty>);
6637									impl<'de> Deserialize<'de> for DeserializeWith {
6638										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6639										where
6640											D: Deserializer<'de>,
6641										{
6642											Ok(DeserializeWith(serde_with::As::<
6643												serde_with::OneOrMany<serde_with::Same>,
6644											>::deserialize(deserializer)?))
6645										}
6646									}
6647									match map.next_value::<DeserializeWith>() {
6648										Ok(deserialize_with) => deserialize_with.0,
6649										Err(err) => {
6650											return Err(err);
6651										}
6652									}
6653								});
6654							}
6655							Field::EncodingFormat => {
6656								if r#encoding_format_property.is_some() {
6657									return Err(<A::Error as de::Error>::duplicate_field(
6658										"encodingFormat",
6659									));
6660								}
6661								r#encoding_format_property = Some({
6662									struct DeserializeWith(Vec<EncodingFormatProperty>);
6663									impl<'de> Deserialize<'de> for DeserializeWith {
6664										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6665										where
6666											D: Deserializer<'de>,
6667										{
6668											Ok(DeserializeWith(serde_with::As::<
6669												serde_with::OneOrMany<serde_with::Same>,
6670											>::deserialize(deserializer)?))
6671										}
6672									}
6673									match map.next_value::<DeserializeWith>() {
6674										Ok(deserialize_with) => deserialize_with.0,
6675										Err(err) => {
6676											return Err(err);
6677										}
6678									}
6679								});
6680							}
6681							Field::Encodings => {
6682								if r#encodings_property.is_some() {
6683									return Err(<A::Error as de::Error>::duplicate_field(
6684										"encodings",
6685									));
6686								}
6687								r#encodings_property = Some({
6688									struct DeserializeWith(Vec<EncodingsProperty>);
6689									impl<'de> Deserialize<'de> for DeserializeWith {
6690										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6691										where
6692											D: Deserializer<'de>,
6693										{
6694											Ok(DeserializeWith(serde_with::As::<
6695												serde_with::OneOrMany<serde_with::Same>,
6696											>::deserialize(deserializer)?))
6697										}
6698									}
6699									match map.next_value::<DeserializeWith>() {
6700										Ok(deserialize_with) => deserialize_with.0,
6701										Err(err) => {
6702											return Err(err);
6703										}
6704									}
6705								});
6706							}
6707							Field::ExampleOfWork => {
6708								if r#example_of_work_property.is_some() {
6709									return Err(<A::Error as de::Error>::duplicate_field(
6710										"exampleOfWork",
6711									));
6712								}
6713								r#example_of_work_property = Some({
6714									struct DeserializeWith(Vec<ExampleOfWorkProperty>);
6715									impl<'de> Deserialize<'de> for DeserializeWith {
6716										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6717										where
6718											D: Deserializer<'de>,
6719										{
6720											Ok(DeserializeWith(serde_with::As::<
6721												serde_with::OneOrMany<serde_with::Same>,
6722											>::deserialize(deserializer)?))
6723										}
6724									}
6725									match map.next_value::<DeserializeWith>() {
6726										Ok(deserialize_with) => deserialize_with.0,
6727										Err(err) => {
6728											return Err(err);
6729										}
6730									}
6731								});
6732							}
6733							Field::Expires => {
6734								if r#expires_property.is_some() {
6735									return Err(<A::Error as de::Error>::duplicate_field(
6736										"expires",
6737									));
6738								}
6739								r#expires_property = Some({
6740									struct DeserializeWith(Vec<ExpiresProperty>);
6741									impl<'de> Deserialize<'de> for DeserializeWith {
6742										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6743										where
6744											D: Deserializer<'de>,
6745										{
6746											Ok(DeserializeWith(serde_with::As::<
6747												serde_with::OneOrMany<serde_with::Same>,
6748											>::deserialize(deserializer)?))
6749										}
6750									}
6751									match map.next_value::<DeserializeWith>() {
6752										Ok(deserialize_with) => deserialize_with.0,
6753										Err(err) => {
6754											return Err(err);
6755										}
6756									}
6757								});
6758							}
6759							Field::FileFormat => {
6760								if r#file_format_property.is_some() {
6761									return Err(<A::Error as de::Error>::duplicate_field(
6762										"fileFormat",
6763									));
6764								}
6765								r#file_format_property = Some({
6766									struct DeserializeWith(Vec<FileFormatProperty>);
6767									impl<'de> Deserialize<'de> for DeserializeWith {
6768										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6769										where
6770											D: Deserializer<'de>,
6771										{
6772											Ok(DeserializeWith(serde_with::As::<
6773												serde_with::OneOrMany<serde_with::Same>,
6774											>::deserialize(deserializer)?))
6775										}
6776									}
6777									match map.next_value::<DeserializeWith>() {
6778										Ok(deserialize_with) => deserialize_with.0,
6779										Err(err) => {
6780											return Err(err);
6781										}
6782									}
6783								});
6784							}
6785							Field::Funder => {
6786								if r#funder_property.is_some() {
6787									return Err(<A::Error as de::Error>::duplicate_field("funder"));
6788								}
6789								r#funder_property = Some({
6790									struct DeserializeWith(Vec<FunderProperty>);
6791									impl<'de> Deserialize<'de> for DeserializeWith {
6792										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6793										where
6794											D: Deserializer<'de>,
6795										{
6796											Ok(DeserializeWith(serde_with::As::<
6797												serde_with::OneOrMany<serde_with::Same>,
6798											>::deserialize(deserializer)?))
6799										}
6800									}
6801									match map.next_value::<DeserializeWith>() {
6802										Ok(deserialize_with) => deserialize_with.0,
6803										Err(err) => {
6804											return Err(err);
6805										}
6806									}
6807								});
6808							}
6809							Field::Funding => {
6810								if r#funding_property.is_some() {
6811									return Err(<A::Error as de::Error>::duplicate_field(
6812										"funding",
6813									));
6814								}
6815								r#funding_property = Some({
6816									struct DeserializeWith(Vec<FundingProperty>);
6817									impl<'de> Deserialize<'de> for DeserializeWith {
6818										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6819										where
6820											D: Deserializer<'de>,
6821										{
6822											Ok(DeserializeWith(serde_with::As::<
6823												serde_with::OneOrMany<serde_with::Same>,
6824											>::deserialize(deserializer)?))
6825										}
6826									}
6827									match map.next_value::<DeserializeWith>() {
6828										Ok(deserialize_with) => deserialize_with.0,
6829										Err(err) => {
6830											return Err(err);
6831										}
6832									}
6833								});
6834							}
6835							Field::Genre => {
6836								if r#genre_property.is_some() {
6837									return Err(<A::Error as de::Error>::duplicate_field("genre"));
6838								}
6839								r#genre_property = Some({
6840									struct DeserializeWith(Vec<GenreProperty>);
6841									impl<'de> Deserialize<'de> for DeserializeWith {
6842										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6843										where
6844											D: Deserializer<'de>,
6845										{
6846											Ok(DeserializeWith(serde_with::As::<
6847												serde_with::OneOrMany<serde_with::Same>,
6848											>::deserialize(deserializer)?))
6849										}
6850									}
6851									match map.next_value::<DeserializeWith>() {
6852										Ok(deserialize_with) => deserialize_with.0,
6853										Err(err) => {
6854											return Err(err);
6855										}
6856									}
6857								});
6858							}
6859							Field::HasPart => {
6860								if r#has_part_property.is_some() {
6861									return Err(<A::Error as de::Error>::duplicate_field(
6862										"hasPart",
6863									));
6864								}
6865								r#has_part_property = Some({
6866									struct DeserializeWith(Vec<HasPartProperty>);
6867									impl<'de> Deserialize<'de> for DeserializeWith {
6868										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6869										where
6870											D: Deserializer<'de>,
6871										{
6872											Ok(DeserializeWith(serde_with::As::<
6873												serde_with::OneOrMany<serde_with::Same>,
6874											>::deserialize(deserializer)?))
6875										}
6876									}
6877									match map.next_value::<DeserializeWith>() {
6878										Ok(deserialize_with) => deserialize_with.0,
6879										Err(err) => {
6880											return Err(err);
6881										}
6882									}
6883								});
6884							}
6885							Field::Headline => {
6886								if r#headline_property.is_some() {
6887									return Err(<A::Error as de::Error>::duplicate_field(
6888										"headline",
6889									));
6890								}
6891								r#headline_property = Some({
6892									struct DeserializeWith(Vec<HeadlineProperty>);
6893									impl<'de> Deserialize<'de> for DeserializeWith {
6894										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6895										where
6896											D: Deserializer<'de>,
6897										{
6898											Ok(DeserializeWith(serde_with::As::<
6899												serde_with::OneOrMany<serde_with::Same>,
6900											>::deserialize(deserializer)?))
6901										}
6902									}
6903									match map.next_value::<DeserializeWith>() {
6904										Ok(deserialize_with) => deserialize_with.0,
6905										Err(err) => {
6906											return Err(err);
6907										}
6908									}
6909								});
6910							}
6911							Field::InLanguage => {
6912								if r#in_language_property.is_some() {
6913									return Err(<A::Error as de::Error>::duplicate_field(
6914										"inLanguage",
6915									));
6916								}
6917								r#in_language_property = Some({
6918									struct DeserializeWith(Vec<InLanguageProperty>);
6919									impl<'de> Deserialize<'de> for DeserializeWith {
6920										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6921										where
6922											D: Deserializer<'de>,
6923										{
6924											Ok(DeserializeWith(serde_with::As::<
6925												serde_with::OneOrMany<serde_with::Same>,
6926											>::deserialize(deserializer)?))
6927										}
6928									}
6929									match map.next_value::<DeserializeWith>() {
6930										Ok(deserialize_with) => deserialize_with.0,
6931										Err(err) => {
6932											return Err(err);
6933										}
6934									}
6935								});
6936							}
6937							Field::InteractionStatistic => {
6938								if r#interaction_statistic_property.is_some() {
6939									return Err(<A::Error as de::Error>::duplicate_field(
6940										"interactionStatistic",
6941									));
6942								}
6943								r#interaction_statistic_property = Some({
6944									struct DeserializeWith(Vec<InteractionStatisticProperty>);
6945									impl<'de> Deserialize<'de> for DeserializeWith {
6946										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6947										where
6948											D: Deserializer<'de>,
6949										{
6950											Ok(DeserializeWith(serde_with::As::<
6951												serde_with::OneOrMany<serde_with::Same>,
6952											>::deserialize(deserializer)?))
6953										}
6954									}
6955									match map.next_value::<DeserializeWith>() {
6956										Ok(deserialize_with) => deserialize_with.0,
6957										Err(err) => {
6958											return Err(err);
6959										}
6960									}
6961								});
6962							}
6963							Field::InteractivityType => {
6964								if r#interactivity_type_property.is_some() {
6965									return Err(<A::Error as de::Error>::duplicate_field(
6966										"interactivityType",
6967									));
6968								}
6969								r#interactivity_type_property = Some({
6970									struct DeserializeWith(Vec<InteractivityTypeProperty>);
6971									impl<'de> Deserialize<'de> for DeserializeWith {
6972										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6973										where
6974											D: Deserializer<'de>,
6975										{
6976											Ok(DeserializeWith(serde_with::As::<
6977												serde_with::OneOrMany<serde_with::Same>,
6978											>::deserialize(deserializer)?))
6979										}
6980									}
6981									match map.next_value::<DeserializeWith>() {
6982										Ok(deserialize_with) => deserialize_with.0,
6983										Err(err) => {
6984											return Err(err);
6985										}
6986									}
6987								});
6988							}
6989							Field::InterpretedAsClaim => {
6990								if r#interpreted_as_claim_property.is_some() {
6991									return Err(<A::Error as de::Error>::duplicate_field(
6992										"interpretedAsClaim",
6993									));
6994								}
6995								r#interpreted_as_claim_property = Some({
6996									struct DeserializeWith(Vec<InterpretedAsClaimProperty>);
6997									impl<'de> Deserialize<'de> for DeserializeWith {
6998										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6999										where
7000											D: Deserializer<'de>,
7001										{
7002											Ok(DeserializeWith(serde_with::As::<
7003												serde_with::OneOrMany<serde_with::Same>,
7004											>::deserialize(deserializer)?))
7005										}
7006									}
7007									match map.next_value::<DeserializeWith>() {
7008										Ok(deserialize_with) => deserialize_with.0,
7009										Err(err) => {
7010											return Err(err);
7011										}
7012									}
7013								});
7014							}
7015							Field::IsAccessibleForFree => {
7016								if r#is_accessible_for_free_property.is_some() {
7017									return Err(<A::Error as de::Error>::duplicate_field(
7018										"isAccessibleForFree",
7019									));
7020								}
7021								r#is_accessible_for_free_property = Some({
7022									struct DeserializeWith(Vec<IsAccessibleForFreeProperty>);
7023									impl<'de> Deserialize<'de> for DeserializeWith {
7024										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7025										where
7026											D: Deserializer<'de>,
7027										{
7028											Ok(DeserializeWith(serde_with::As::<
7029												serde_with::OneOrMany<serde_with::Same>,
7030											>::deserialize(deserializer)?))
7031										}
7032									}
7033									match map.next_value::<DeserializeWith>() {
7034										Ok(deserialize_with) => deserialize_with.0,
7035										Err(err) => {
7036											return Err(err);
7037										}
7038									}
7039								});
7040							}
7041							Field::IsBasedOn => {
7042								if r#is_based_on_property.is_some() {
7043									return Err(<A::Error as de::Error>::duplicate_field(
7044										"isBasedOn",
7045									));
7046								}
7047								r#is_based_on_property = Some({
7048									struct DeserializeWith(Vec<IsBasedOnProperty>);
7049									impl<'de> Deserialize<'de> for DeserializeWith {
7050										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7051										where
7052											D: Deserializer<'de>,
7053										{
7054											Ok(DeserializeWith(serde_with::As::<
7055												serde_with::OneOrMany<serde_with::Same>,
7056											>::deserialize(deserializer)?))
7057										}
7058									}
7059									match map.next_value::<DeserializeWith>() {
7060										Ok(deserialize_with) => deserialize_with.0,
7061										Err(err) => {
7062											return Err(err);
7063										}
7064									}
7065								});
7066							}
7067							Field::IsBasedOnUrl => {
7068								if r#is_based_on_url_property.is_some() {
7069									return Err(<A::Error as de::Error>::duplicate_field(
7070										"isBasedOnUrl",
7071									));
7072								}
7073								r#is_based_on_url_property = Some({
7074									struct DeserializeWith(Vec<IsBasedOnUrlProperty>);
7075									impl<'de> Deserialize<'de> for DeserializeWith {
7076										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7077										where
7078											D: Deserializer<'de>,
7079										{
7080											Ok(DeserializeWith(serde_with::As::<
7081												serde_with::OneOrMany<serde_with::Same>,
7082											>::deserialize(deserializer)?))
7083										}
7084									}
7085									match map.next_value::<DeserializeWith>() {
7086										Ok(deserialize_with) => deserialize_with.0,
7087										Err(err) => {
7088											return Err(err);
7089										}
7090									}
7091								});
7092							}
7093							Field::IsFamilyFriendly => {
7094								if r#is_family_friendly_property.is_some() {
7095									return Err(<A::Error as de::Error>::duplicate_field(
7096										"isFamilyFriendly",
7097									));
7098								}
7099								r#is_family_friendly_property = Some({
7100									struct DeserializeWith(Vec<IsFamilyFriendlyProperty>);
7101									impl<'de> Deserialize<'de> for DeserializeWith {
7102										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7103										where
7104											D: Deserializer<'de>,
7105										{
7106											Ok(DeserializeWith(serde_with::As::<
7107												serde_with::OneOrMany<serde_with::Same>,
7108											>::deserialize(deserializer)?))
7109										}
7110									}
7111									match map.next_value::<DeserializeWith>() {
7112										Ok(deserialize_with) => deserialize_with.0,
7113										Err(err) => {
7114											return Err(err);
7115										}
7116									}
7117								});
7118							}
7119							Field::IsPartOf => {
7120								if r#is_part_of_property.is_some() {
7121									return Err(<A::Error as de::Error>::duplicate_field(
7122										"isPartOf",
7123									));
7124								}
7125								r#is_part_of_property = Some({
7126									struct DeserializeWith(Vec<IsPartOfProperty>);
7127									impl<'de> Deserialize<'de> for DeserializeWith {
7128										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7129										where
7130											D: Deserializer<'de>,
7131										{
7132											Ok(DeserializeWith(serde_with::As::<
7133												serde_with::OneOrMany<serde_with::Same>,
7134											>::deserialize(deserializer)?))
7135										}
7136									}
7137									match map.next_value::<DeserializeWith>() {
7138										Ok(deserialize_with) => deserialize_with.0,
7139										Err(err) => {
7140											return Err(err);
7141										}
7142									}
7143								});
7144							}
7145							Field::Keywords => {
7146								if r#keywords_property.is_some() {
7147									return Err(<A::Error as de::Error>::duplicate_field(
7148										"keywords",
7149									));
7150								}
7151								r#keywords_property = Some({
7152									struct DeserializeWith(Vec<KeywordsProperty>);
7153									impl<'de> Deserialize<'de> for DeserializeWith {
7154										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7155										where
7156											D: Deserializer<'de>,
7157										{
7158											Ok(DeserializeWith(serde_with::As::<
7159												serde_with::OneOrMany<serde_with::Same>,
7160											>::deserialize(deserializer)?))
7161										}
7162									}
7163									match map.next_value::<DeserializeWith>() {
7164										Ok(deserialize_with) => deserialize_with.0,
7165										Err(err) => {
7166											return Err(err);
7167										}
7168									}
7169								});
7170							}
7171							Field::LearningResourceType => {
7172								if r#learning_resource_type_property.is_some() {
7173									return Err(<A::Error as de::Error>::duplicate_field(
7174										"learningResourceType",
7175									));
7176								}
7177								r#learning_resource_type_property = Some({
7178									struct DeserializeWith(Vec<LearningResourceTypeProperty>);
7179									impl<'de> Deserialize<'de> for DeserializeWith {
7180										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7181										where
7182											D: Deserializer<'de>,
7183										{
7184											Ok(DeserializeWith(serde_with::As::<
7185												serde_with::OneOrMany<serde_with::Same>,
7186											>::deserialize(deserializer)?))
7187										}
7188									}
7189									match map.next_value::<DeserializeWith>() {
7190										Ok(deserialize_with) => deserialize_with.0,
7191										Err(err) => {
7192											return Err(err);
7193										}
7194									}
7195								});
7196							}
7197							Field::License => {
7198								if r#license_property.is_some() {
7199									return Err(<A::Error as de::Error>::duplicate_field(
7200										"license",
7201									));
7202								}
7203								r#license_property = Some({
7204									struct DeserializeWith(Vec<LicenseProperty>);
7205									impl<'de> Deserialize<'de> for DeserializeWith {
7206										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7207										where
7208											D: Deserializer<'de>,
7209										{
7210											Ok(DeserializeWith(serde_with::As::<
7211												serde_with::OneOrMany<serde_with::Same>,
7212											>::deserialize(deserializer)?))
7213										}
7214									}
7215									match map.next_value::<DeserializeWith>() {
7216										Ok(deserialize_with) => deserialize_with.0,
7217										Err(err) => {
7218											return Err(err);
7219										}
7220									}
7221								});
7222							}
7223							Field::LocationCreated => {
7224								if r#location_created_property.is_some() {
7225									return Err(<A::Error as de::Error>::duplicate_field(
7226										"locationCreated",
7227									));
7228								}
7229								r#location_created_property = Some({
7230									struct DeserializeWith(Vec<LocationCreatedProperty>);
7231									impl<'de> Deserialize<'de> for DeserializeWith {
7232										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7233										where
7234											D: Deserializer<'de>,
7235										{
7236											Ok(DeserializeWith(serde_with::As::<
7237												serde_with::OneOrMany<serde_with::Same>,
7238											>::deserialize(deserializer)?))
7239										}
7240									}
7241									match map.next_value::<DeserializeWith>() {
7242										Ok(deserialize_with) => deserialize_with.0,
7243										Err(err) => {
7244											return Err(err);
7245										}
7246									}
7247								});
7248							}
7249							Field::MainEntity => {
7250								if r#main_entity_property.is_some() {
7251									return Err(<A::Error as de::Error>::duplicate_field(
7252										"mainEntity",
7253									));
7254								}
7255								r#main_entity_property = Some({
7256									struct DeserializeWith(Vec<MainEntityProperty>);
7257									impl<'de> Deserialize<'de> for DeserializeWith {
7258										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7259										where
7260											D: Deserializer<'de>,
7261										{
7262											Ok(DeserializeWith(serde_with::As::<
7263												serde_with::OneOrMany<serde_with::Same>,
7264											>::deserialize(deserializer)?))
7265										}
7266									}
7267									match map.next_value::<DeserializeWith>() {
7268										Ok(deserialize_with) => deserialize_with.0,
7269										Err(err) => {
7270											return Err(err);
7271										}
7272									}
7273								});
7274							}
7275							Field::Maintainer => {
7276								if r#maintainer_property.is_some() {
7277									return Err(<A::Error as de::Error>::duplicate_field(
7278										"maintainer",
7279									));
7280								}
7281								r#maintainer_property = Some({
7282									struct DeserializeWith(Vec<MaintainerProperty>);
7283									impl<'de> Deserialize<'de> for DeserializeWith {
7284										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7285										where
7286											D: Deserializer<'de>,
7287										{
7288											Ok(DeserializeWith(serde_with::As::<
7289												serde_with::OneOrMany<serde_with::Same>,
7290											>::deserialize(deserializer)?))
7291										}
7292									}
7293									match map.next_value::<DeserializeWith>() {
7294										Ok(deserialize_with) => deserialize_with.0,
7295										Err(err) => {
7296											return Err(err);
7297										}
7298									}
7299								});
7300							}
7301							Field::Material => {
7302								if r#material_property.is_some() {
7303									return Err(<A::Error as de::Error>::duplicate_field(
7304										"material",
7305									));
7306								}
7307								r#material_property = Some({
7308									struct DeserializeWith(Vec<MaterialProperty>);
7309									impl<'de> Deserialize<'de> for DeserializeWith {
7310										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7311										where
7312											D: Deserializer<'de>,
7313										{
7314											Ok(DeserializeWith(serde_with::As::<
7315												serde_with::OneOrMany<serde_with::Same>,
7316											>::deserialize(deserializer)?))
7317										}
7318									}
7319									match map.next_value::<DeserializeWith>() {
7320										Ok(deserialize_with) => deserialize_with.0,
7321										Err(err) => {
7322											return Err(err);
7323										}
7324									}
7325								});
7326							}
7327							Field::MaterialExtent => {
7328								if r#material_extent_property.is_some() {
7329									return Err(<A::Error as de::Error>::duplicate_field(
7330										"materialExtent",
7331									));
7332								}
7333								r#material_extent_property = Some({
7334									struct DeserializeWith(Vec<MaterialExtentProperty>);
7335									impl<'de> Deserialize<'de> for DeserializeWith {
7336										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7337										where
7338											D: Deserializer<'de>,
7339										{
7340											Ok(DeserializeWith(serde_with::As::<
7341												serde_with::OneOrMany<serde_with::Same>,
7342											>::deserialize(deserializer)?))
7343										}
7344									}
7345									match map.next_value::<DeserializeWith>() {
7346										Ok(deserialize_with) => deserialize_with.0,
7347										Err(err) => {
7348											return Err(err);
7349										}
7350									}
7351								});
7352							}
7353							Field::Mentions => {
7354								if r#mentions_property.is_some() {
7355									return Err(<A::Error as de::Error>::duplicate_field(
7356										"mentions",
7357									));
7358								}
7359								r#mentions_property = Some({
7360									struct DeserializeWith(Vec<MentionsProperty>);
7361									impl<'de> Deserialize<'de> for DeserializeWith {
7362										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7363										where
7364											D: Deserializer<'de>,
7365										{
7366											Ok(DeserializeWith(serde_with::As::<
7367												serde_with::OneOrMany<serde_with::Same>,
7368											>::deserialize(deserializer)?))
7369										}
7370									}
7371									match map.next_value::<DeserializeWith>() {
7372										Ok(deserialize_with) => deserialize_with.0,
7373										Err(err) => {
7374											return Err(err);
7375										}
7376									}
7377								});
7378							}
7379							Field::Offers => {
7380								if r#offers_property.is_some() {
7381									return Err(<A::Error as de::Error>::duplicate_field("offers"));
7382								}
7383								r#offers_property = Some({
7384									struct DeserializeWith(Vec<OffersProperty>);
7385									impl<'de> Deserialize<'de> for DeserializeWith {
7386										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7387										where
7388											D: Deserializer<'de>,
7389										{
7390											Ok(DeserializeWith(serde_with::As::<
7391												serde_with::OneOrMany<serde_with::Same>,
7392											>::deserialize(deserializer)?))
7393										}
7394									}
7395									match map.next_value::<DeserializeWith>() {
7396										Ok(deserialize_with) => deserialize_with.0,
7397										Err(err) => {
7398											return Err(err);
7399										}
7400									}
7401								});
7402							}
7403							Field::Pattern => {
7404								if r#pattern_property.is_some() {
7405									return Err(<A::Error as de::Error>::duplicate_field(
7406										"pattern",
7407									));
7408								}
7409								r#pattern_property = Some({
7410									struct DeserializeWith(Vec<PatternProperty>);
7411									impl<'de> Deserialize<'de> for DeserializeWith {
7412										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7413										where
7414											D: Deserializer<'de>,
7415										{
7416											Ok(DeserializeWith(serde_with::As::<
7417												serde_with::OneOrMany<serde_with::Same>,
7418											>::deserialize(deserializer)?))
7419										}
7420									}
7421									match map.next_value::<DeserializeWith>() {
7422										Ok(deserialize_with) => deserialize_with.0,
7423										Err(err) => {
7424											return Err(err);
7425										}
7426									}
7427								});
7428							}
7429							Field::Position => {
7430								if r#position_property.is_some() {
7431									return Err(<A::Error as de::Error>::duplicate_field(
7432										"position",
7433									));
7434								}
7435								r#position_property = Some({
7436									struct DeserializeWith(Vec<PositionProperty>);
7437									impl<'de> Deserialize<'de> for DeserializeWith {
7438										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7439										where
7440											D: Deserializer<'de>,
7441										{
7442											Ok(DeserializeWith(serde_with::As::<
7443												serde_with::OneOrMany<serde_with::Same>,
7444											>::deserialize(deserializer)?))
7445										}
7446									}
7447									match map.next_value::<DeserializeWith>() {
7448										Ok(deserialize_with) => deserialize_with.0,
7449										Err(err) => {
7450											return Err(err);
7451										}
7452									}
7453								});
7454							}
7455							Field::Producer => {
7456								if r#producer_property.is_some() {
7457									return Err(<A::Error as de::Error>::duplicate_field(
7458										"producer",
7459									));
7460								}
7461								r#producer_property = Some({
7462									struct DeserializeWith(Vec<ProducerProperty>);
7463									impl<'de> Deserialize<'de> for DeserializeWith {
7464										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7465										where
7466											D: Deserializer<'de>,
7467										{
7468											Ok(DeserializeWith(serde_with::As::<
7469												serde_with::OneOrMany<serde_with::Same>,
7470											>::deserialize(deserializer)?))
7471										}
7472									}
7473									match map.next_value::<DeserializeWith>() {
7474										Ok(deserialize_with) => deserialize_with.0,
7475										Err(err) => {
7476											return Err(err);
7477										}
7478									}
7479								});
7480							}
7481							Field::Provider => {
7482								if r#provider_property.is_some() {
7483									return Err(<A::Error as de::Error>::duplicate_field(
7484										"provider",
7485									));
7486								}
7487								r#provider_property = Some({
7488									struct DeserializeWith(Vec<ProviderProperty>);
7489									impl<'de> Deserialize<'de> for DeserializeWith {
7490										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7491										where
7492											D: Deserializer<'de>,
7493										{
7494											Ok(DeserializeWith(serde_with::As::<
7495												serde_with::OneOrMany<serde_with::Same>,
7496											>::deserialize(deserializer)?))
7497										}
7498									}
7499									match map.next_value::<DeserializeWith>() {
7500										Ok(deserialize_with) => deserialize_with.0,
7501										Err(err) => {
7502											return Err(err);
7503										}
7504									}
7505								});
7506							}
7507							Field::Publication => {
7508								if r#publication_property.is_some() {
7509									return Err(<A::Error as de::Error>::duplicate_field(
7510										"publication",
7511									));
7512								}
7513								r#publication_property = Some({
7514									struct DeserializeWith(Vec<PublicationProperty>);
7515									impl<'de> Deserialize<'de> for DeserializeWith {
7516										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7517										where
7518											D: Deserializer<'de>,
7519										{
7520											Ok(DeserializeWith(serde_with::As::<
7521												serde_with::OneOrMany<serde_with::Same>,
7522											>::deserialize(deserializer)?))
7523										}
7524									}
7525									match map.next_value::<DeserializeWith>() {
7526										Ok(deserialize_with) => deserialize_with.0,
7527										Err(err) => {
7528											return Err(err);
7529										}
7530									}
7531								});
7532							}
7533							Field::Publisher => {
7534								if r#publisher_property.is_some() {
7535									return Err(<A::Error as de::Error>::duplicate_field(
7536										"publisher",
7537									));
7538								}
7539								r#publisher_property = Some({
7540									struct DeserializeWith(Vec<PublisherProperty>);
7541									impl<'de> Deserialize<'de> for DeserializeWith {
7542										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7543										where
7544											D: Deserializer<'de>,
7545										{
7546											Ok(DeserializeWith(serde_with::As::<
7547												serde_with::OneOrMany<serde_with::Same>,
7548											>::deserialize(deserializer)?))
7549										}
7550									}
7551									match map.next_value::<DeserializeWith>() {
7552										Ok(deserialize_with) => deserialize_with.0,
7553										Err(err) => {
7554											return Err(err);
7555										}
7556									}
7557								});
7558							}
7559							Field::PublisherImprint => {
7560								if r#publisher_imprint_property.is_some() {
7561									return Err(<A::Error as de::Error>::duplicate_field(
7562										"publisherImprint",
7563									));
7564								}
7565								r#publisher_imprint_property = Some({
7566									struct DeserializeWith(Vec<PublisherImprintProperty>);
7567									impl<'de> Deserialize<'de> for DeserializeWith {
7568										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7569										where
7570											D: Deserializer<'de>,
7571										{
7572											Ok(DeserializeWith(serde_with::As::<
7573												serde_with::OneOrMany<serde_with::Same>,
7574											>::deserialize(deserializer)?))
7575										}
7576									}
7577									match map.next_value::<DeserializeWith>() {
7578										Ok(deserialize_with) => deserialize_with.0,
7579										Err(err) => {
7580											return Err(err);
7581										}
7582									}
7583								});
7584							}
7585							Field::PublishingPrinciples => {
7586								if r#publishing_principles_property.is_some() {
7587									return Err(<A::Error as de::Error>::duplicate_field(
7588										"publishingPrinciples",
7589									));
7590								}
7591								r#publishing_principles_property = Some({
7592									struct DeserializeWith(Vec<PublishingPrinciplesProperty>);
7593									impl<'de> Deserialize<'de> for DeserializeWith {
7594										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7595										where
7596											D: Deserializer<'de>,
7597										{
7598											Ok(DeserializeWith(serde_with::As::<
7599												serde_with::OneOrMany<serde_with::Same>,
7600											>::deserialize(deserializer)?))
7601										}
7602									}
7603									match map.next_value::<DeserializeWith>() {
7604										Ok(deserialize_with) => deserialize_with.0,
7605										Err(err) => {
7606											return Err(err);
7607										}
7608									}
7609								});
7610							}
7611							Field::RecordedAt => {
7612								if r#recorded_at_property.is_some() {
7613									return Err(<A::Error as de::Error>::duplicate_field(
7614										"recordedAt",
7615									));
7616								}
7617								r#recorded_at_property = Some({
7618									struct DeserializeWith(Vec<RecordedAtProperty>);
7619									impl<'de> Deserialize<'de> for DeserializeWith {
7620										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7621										where
7622											D: Deserializer<'de>,
7623										{
7624											Ok(DeserializeWith(serde_with::As::<
7625												serde_with::OneOrMany<serde_with::Same>,
7626											>::deserialize(deserializer)?))
7627										}
7628									}
7629									match map.next_value::<DeserializeWith>() {
7630										Ok(deserialize_with) => deserialize_with.0,
7631										Err(err) => {
7632											return Err(err);
7633										}
7634									}
7635								});
7636							}
7637							Field::ReleasedEvent => {
7638								if r#released_event_property.is_some() {
7639									return Err(<A::Error as de::Error>::duplicate_field(
7640										"releasedEvent",
7641									));
7642								}
7643								r#released_event_property = Some({
7644									struct DeserializeWith(Vec<ReleasedEventProperty>);
7645									impl<'de> Deserialize<'de> for DeserializeWith {
7646										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7647										where
7648											D: Deserializer<'de>,
7649										{
7650											Ok(DeserializeWith(serde_with::As::<
7651												serde_with::OneOrMany<serde_with::Same>,
7652											>::deserialize(deserializer)?))
7653										}
7654									}
7655									match map.next_value::<DeserializeWith>() {
7656										Ok(deserialize_with) => deserialize_with.0,
7657										Err(err) => {
7658											return Err(err);
7659										}
7660									}
7661								});
7662							}
7663							Field::Review => {
7664								if r#review_property.is_some() {
7665									return Err(<A::Error as de::Error>::duplicate_field("review"));
7666								}
7667								r#review_property = Some({
7668									struct DeserializeWith(Vec<ReviewProperty>);
7669									impl<'de> Deserialize<'de> for DeserializeWith {
7670										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7671										where
7672											D: Deserializer<'de>,
7673										{
7674											Ok(DeserializeWith(serde_with::As::<
7675												serde_with::OneOrMany<serde_with::Same>,
7676											>::deserialize(deserializer)?))
7677										}
7678									}
7679									match map.next_value::<DeserializeWith>() {
7680										Ok(deserialize_with) => deserialize_with.0,
7681										Err(err) => {
7682											return Err(err);
7683										}
7684									}
7685								});
7686							}
7687							Field::Reviews => {
7688								if r#reviews_property.is_some() {
7689									return Err(<A::Error as de::Error>::duplicate_field(
7690										"reviews",
7691									));
7692								}
7693								r#reviews_property = Some({
7694									struct DeserializeWith(Vec<ReviewsProperty>);
7695									impl<'de> Deserialize<'de> for DeserializeWith {
7696										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7697										where
7698											D: Deserializer<'de>,
7699										{
7700											Ok(DeserializeWith(serde_with::As::<
7701												serde_with::OneOrMany<serde_with::Same>,
7702											>::deserialize(deserializer)?))
7703										}
7704									}
7705									match map.next_value::<DeserializeWith>() {
7706										Ok(deserialize_with) => deserialize_with.0,
7707										Err(err) => {
7708											return Err(err);
7709										}
7710									}
7711								});
7712							}
7713							Field::SchemaVersion => {
7714								if r#schema_version_property.is_some() {
7715									return Err(<A::Error as de::Error>::duplicate_field(
7716										"schemaVersion",
7717									));
7718								}
7719								r#schema_version_property = Some({
7720									struct DeserializeWith(Vec<SchemaVersionProperty>);
7721									impl<'de> Deserialize<'de> for DeserializeWith {
7722										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7723										where
7724											D: Deserializer<'de>,
7725										{
7726											Ok(DeserializeWith(serde_with::As::<
7727												serde_with::OneOrMany<serde_with::Same>,
7728											>::deserialize(deserializer)?))
7729										}
7730									}
7731									match map.next_value::<DeserializeWith>() {
7732										Ok(deserialize_with) => deserialize_with.0,
7733										Err(err) => {
7734											return Err(err);
7735										}
7736									}
7737								});
7738							}
7739							Field::SdDatePublished => {
7740								if r#sd_date_published_property.is_some() {
7741									return Err(<A::Error as de::Error>::duplicate_field(
7742										"sdDatePublished",
7743									));
7744								}
7745								r#sd_date_published_property = Some({
7746									struct DeserializeWith(Vec<SdDatePublishedProperty>);
7747									impl<'de> Deserialize<'de> for DeserializeWith {
7748										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7749										where
7750											D: Deserializer<'de>,
7751										{
7752											Ok(DeserializeWith(serde_with::As::<
7753												serde_with::OneOrMany<serde_with::Same>,
7754											>::deserialize(deserializer)?))
7755										}
7756									}
7757									match map.next_value::<DeserializeWith>() {
7758										Ok(deserialize_with) => deserialize_with.0,
7759										Err(err) => {
7760											return Err(err);
7761										}
7762									}
7763								});
7764							}
7765							Field::SdLicense => {
7766								if r#sd_license_property.is_some() {
7767									return Err(<A::Error as de::Error>::duplicate_field(
7768										"sdLicense",
7769									));
7770								}
7771								r#sd_license_property = Some({
7772									struct DeserializeWith(Vec<SdLicenseProperty>);
7773									impl<'de> Deserialize<'de> for DeserializeWith {
7774										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7775										where
7776											D: Deserializer<'de>,
7777										{
7778											Ok(DeserializeWith(serde_with::As::<
7779												serde_with::OneOrMany<serde_with::Same>,
7780											>::deserialize(deserializer)?))
7781										}
7782									}
7783									match map.next_value::<DeserializeWith>() {
7784										Ok(deserialize_with) => deserialize_with.0,
7785										Err(err) => {
7786											return Err(err);
7787										}
7788									}
7789								});
7790							}
7791							Field::SdPublisher => {
7792								if r#sd_publisher_property.is_some() {
7793									return Err(<A::Error as de::Error>::duplicate_field(
7794										"sdPublisher",
7795									));
7796								}
7797								r#sd_publisher_property = Some({
7798									struct DeserializeWith(Vec<SdPublisherProperty>);
7799									impl<'de> Deserialize<'de> for DeserializeWith {
7800										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7801										where
7802											D: Deserializer<'de>,
7803										{
7804											Ok(DeserializeWith(serde_with::As::<
7805												serde_with::OneOrMany<serde_with::Same>,
7806											>::deserialize(deserializer)?))
7807										}
7808									}
7809									match map.next_value::<DeserializeWith>() {
7810										Ok(deserialize_with) => deserialize_with.0,
7811										Err(err) => {
7812											return Err(err);
7813										}
7814									}
7815								});
7816							}
7817							Field::Size => {
7818								if r#size_property.is_some() {
7819									return Err(<A::Error as de::Error>::duplicate_field("size"));
7820								}
7821								r#size_property = Some({
7822									struct DeserializeWith(Vec<SizeProperty>);
7823									impl<'de> Deserialize<'de> for DeserializeWith {
7824										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7825										where
7826											D: Deserializer<'de>,
7827										{
7828											Ok(DeserializeWith(serde_with::As::<
7829												serde_with::OneOrMany<serde_with::Same>,
7830											>::deserialize(deserializer)?))
7831										}
7832									}
7833									match map.next_value::<DeserializeWith>() {
7834										Ok(deserialize_with) => deserialize_with.0,
7835										Err(err) => {
7836											return Err(err);
7837										}
7838									}
7839								});
7840							}
7841							Field::SourceOrganization => {
7842								if r#source_organization_property.is_some() {
7843									return Err(<A::Error as de::Error>::duplicate_field(
7844										"sourceOrganization",
7845									));
7846								}
7847								r#source_organization_property = Some({
7848									struct DeserializeWith(Vec<SourceOrganizationProperty>);
7849									impl<'de> Deserialize<'de> for DeserializeWith {
7850										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7851										where
7852											D: Deserializer<'de>,
7853										{
7854											Ok(DeserializeWith(serde_with::As::<
7855												serde_with::OneOrMany<serde_with::Same>,
7856											>::deserialize(deserializer)?))
7857										}
7858									}
7859									match map.next_value::<DeserializeWith>() {
7860										Ok(deserialize_with) => deserialize_with.0,
7861										Err(err) => {
7862											return Err(err);
7863										}
7864									}
7865								});
7866							}
7867							Field::Spatial => {
7868								if r#spatial_property.is_some() {
7869									return Err(<A::Error as de::Error>::duplicate_field(
7870										"spatial",
7871									));
7872								}
7873								r#spatial_property = Some({
7874									struct DeserializeWith(Vec<SpatialProperty>);
7875									impl<'de> Deserialize<'de> for DeserializeWith {
7876										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7877										where
7878											D: Deserializer<'de>,
7879										{
7880											Ok(DeserializeWith(serde_with::As::<
7881												serde_with::OneOrMany<serde_with::Same>,
7882											>::deserialize(deserializer)?))
7883										}
7884									}
7885									match map.next_value::<DeserializeWith>() {
7886										Ok(deserialize_with) => deserialize_with.0,
7887										Err(err) => {
7888											return Err(err);
7889										}
7890									}
7891								});
7892							}
7893							Field::SpatialCoverage => {
7894								if r#spatial_coverage_property.is_some() {
7895									return Err(<A::Error as de::Error>::duplicate_field(
7896										"spatialCoverage",
7897									));
7898								}
7899								r#spatial_coverage_property = Some({
7900									struct DeserializeWith(Vec<SpatialCoverageProperty>);
7901									impl<'de> Deserialize<'de> for DeserializeWith {
7902										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7903										where
7904											D: Deserializer<'de>,
7905										{
7906											Ok(DeserializeWith(serde_with::As::<
7907												serde_with::OneOrMany<serde_with::Same>,
7908											>::deserialize(deserializer)?))
7909										}
7910									}
7911									match map.next_value::<DeserializeWith>() {
7912										Ok(deserialize_with) => deserialize_with.0,
7913										Err(err) => {
7914											return Err(err);
7915										}
7916									}
7917								});
7918							}
7919							Field::Sponsor => {
7920								if r#sponsor_property.is_some() {
7921									return Err(<A::Error as de::Error>::duplicate_field(
7922										"sponsor",
7923									));
7924								}
7925								r#sponsor_property = Some({
7926									struct DeserializeWith(Vec<SponsorProperty>);
7927									impl<'de> Deserialize<'de> for DeserializeWith {
7928										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7929										where
7930											D: Deserializer<'de>,
7931										{
7932											Ok(DeserializeWith(serde_with::As::<
7933												serde_with::OneOrMany<serde_with::Same>,
7934											>::deserialize(deserializer)?))
7935										}
7936									}
7937									match map.next_value::<DeserializeWith>() {
7938										Ok(deserialize_with) => deserialize_with.0,
7939										Err(err) => {
7940											return Err(err);
7941										}
7942									}
7943								});
7944							}
7945							Field::Teaches => {
7946								if r#teaches_property.is_some() {
7947									return Err(<A::Error as de::Error>::duplicate_field(
7948										"teaches",
7949									));
7950								}
7951								r#teaches_property = Some({
7952									struct DeserializeWith(Vec<TeachesProperty>);
7953									impl<'de> Deserialize<'de> for DeserializeWith {
7954										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7955										where
7956											D: Deserializer<'de>,
7957										{
7958											Ok(DeserializeWith(serde_with::As::<
7959												serde_with::OneOrMany<serde_with::Same>,
7960											>::deserialize(deserializer)?))
7961										}
7962									}
7963									match map.next_value::<DeserializeWith>() {
7964										Ok(deserialize_with) => deserialize_with.0,
7965										Err(err) => {
7966											return Err(err);
7967										}
7968									}
7969								});
7970							}
7971							Field::Temporal => {
7972								if r#temporal_property.is_some() {
7973									return Err(<A::Error as de::Error>::duplicate_field(
7974										"temporal",
7975									));
7976								}
7977								r#temporal_property = Some({
7978									struct DeserializeWith(Vec<TemporalProperty>);
7979									impl<'de> Deserialize<'de> for DeserializeWith {
7980										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7981										where
7982											D: Deserializer<'de>,
7983										{
7984											Ok(DeserializeWith(serde_with::As::<
7985												serde_with::OneOrMany<serde_with::Same>,
7986											>::deserialize(deserializer)?))
7987										}
7988									}
7989									match map.next_value::<DeserializeWith>() {
7990										Ok(deserialize_with) => deserialize_with.0,
7991										Err(err) => {
7992											return Err(err);
7993										}
7994									}
7995								});
7996							}
7997							Field::TemporalCoverage => {
7998								if r#temporal_coverage_property.is_some() {
7999									return Err(<A::Error as de::Error>::duplicate_field(
8000										"temporalCoverage",
8001									));
8002								}
8003								r#temporal_coverage_property = Some({
8004									struct DeserializeWith(Vec<TemporalCoverageProperty>);
8005									impl<'de> Deserialize<'de> for DeserializeWith {
8006										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8007										where
8008											D: Deserializer<'de>,
8009										{
8010											Ok(DeserializeWith(serde_with::As::<
8011												serde_with::OneOrMany<serde_with::Same>,
8012											>::deserialize(deserializer)?))
8013										}
8014									}
8015									match map.next_value::<DeserializeWith>() {
8016										Ok(deserialize_with) => deserialize_with.0,
8017										Err(err) => {
8018											return Err(err);
8019										}
8020									}
8021								});
8022							}
8023							Field::Text => {
8024								if r#text_property.is_some() {
8025									return Err(<A::Error as de::Error>::duplicate_field("text"));
8026								}
8027								r#text_property = Some({
8028									struct DeserializeWith(Vec<TextProperty>);
8029									impl<'de> Deserialize<'de> for DeserializeWith {
8030										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8031										where
8032											D: Deserializer<'de>,
8033										{
8034											Ok(DeserializeWith(serde_with::As::<
8035												serde_with::OneOrMany<serde_with::Same>,
8036											>::deserialize(deserializer)?))
8037										}
8038									}
8039									match map.next_value::<DeserializeWith>() {
8040										Ok(deserialize_with) => deserialize_with.0,
8041										Err(err) => {
8042											return Err(err);
8043										}
8044									}
8045								});
8046							}
8047							Field::Thumbnail => {
8048								if r#thumbnail_property.is_some() {
8049									return Err(<A::Error as de::Error>::duplicate_field(
8050										"thumbnail",
8051									));
8052								}
8053								r#thumbnail_property = Some({
8054									struct DeserializeWith(Vec<ThumbnailProperty>);
8055									impl<'de> Deserialize<'de> for DeserializeWith {
8056										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8057										where
8058											D: Deserializer<'de>,
8059										{
8060											Ok(DeserializeWith(serde_with::As::<
8061												serde_with::OneOrMany<serde_with::Same>,
8062											>::deserialize(deserializer)?))
8063										}
8064									}
8065									match map.next_value::<DeserializeWith>() {
8066										Ok(deserialize_with) => deserialize_with.0,
8067										Err(err) => {
8068											return Err(err);
8069										}
8070									}
8071								});
8072							}
8073							Field::ThumbnailUrl => {
8074								if r#thumbnail_url_property.is_some() {
8075									return Err(<A::Error as de::Error>::duplicate_field(
8076										"thumbnailUrl",
8077									));
8078								}
8079								r#thumbnail_url_property = Some({
8080									struct DeserializeWith(Vec<ThumbnailUrlProperty>);
8081									impl<'de> Deserialize<'de> for DeserializeWith {
8082										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8083										where
8084											D: Deserializer<'de>,
8085										{
8086											Ok(DeserializeWith(serde_with::As::<
8087												serde_with::OneOrMany<serde_with::Same>,
8088											>::deserialize(deserializer)?))
8089										}
8090									}
8091									match map.next_value::<DeserializeWith>() {
8092										Ok(deserialize_with) => deserialize_with.0,
8093										Err(err) => {
8094											return Err(err);
8095										}
8096									}
8097								});
8098							}
8099							Field::TimeRequired => {
8100								if r#time_required_property.is_some() {
8101									return Err(<A::Error as de::Error>::duplicate_field(
8102										"timeRequired",
8103									));
8104								}
8105								r#time_required_property = Some({
8106									struct DeserializeWith(Vec<TimeRequiredProperty>);
8107									impl<'de> Deserialize<'de> for DeserializeWith {
8108										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8109										where
8110											D: Deserializer<'de>,
8111										{
8112											Ok(DeserializeWith(serde_with::As::<
8113												serde_with::OneOrMany<serde_with::Same>,
8114											>::deserialize(deserializer)?))
8115										}
8116									}
8117									match map.next_value::<DeserializeWith>() {
8118										Ok(deserialize_with) => deserialize_with.0,
8119										Err(err) => {
8120											return Err(err);
8121										}
8122									}
8123								});
8124							}
8125							Field::TranslationOfWork => {
8126								if r#translation_of_work_property.is_some() {
8127									return Err(<A::Error as de::Error>::duplicate_field(
8128										"translationOfWork",
8129									));
8130								}
8131								r#translation_of_work_property = Some({
8132									struct DeserializeWith(Vec<TranslationOfWorkProperty>);
8133									impl<'de> Deserialize<'de> for DeserializeWith {
8134										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8135										where
8136											D: Deserializer<'de>,
8137										{
8138											Ok(DeserializeWith(serde_with::As::<
8139												serde_with::OneOrMany<serde_with::Same>,
8140											>::deserialize(deserializer)?))
8141										}
8142									}
8143									match map.next_value::<DeserializeWith>() {
8144										Ok(deserialize_with) => deserialize_with.0,
8145										Err(err) => {
8146											return Err(err);
8147										}
8148									}
8149								});
8150							}
8151							Field::Translator => {
8152								if r#translator_property.is_some() {
8153									return Err(<A::Error as de::Error>::duplicate_field(
8154										"translator",
8155									));
8156								}
8157								r#translator_property = Some({
8158									struct DeserializeWith(Vec<TranslatorProperty>);
8159									impl<'de> Deserialize<'de> for DeserializeWith {
8160										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8161										where
8162											D: Deserializer<'de>,
8163										{
8164											Ok(DeserializeWith(serde_with::As::<
8165												serde_with::OneOrMany<serde_with::Same>,
8166											>::deserialize(deserializer)?))
8167										}
8168									}
8169									match map.next_value::<DeserializeWith>() {
8170										Ok(deserialize_with) => deserialize_with.0,
8171										Err(err) => {
8172											return Err(err);
8173										}
8174									}
8175								});
8176							}
8177							Field::TypicalAgeRange => {
8178								if r#typical_age_range_property.is_some() {
8179									return Err(<A::Error as de::Error>::duplicate_field(
8180										"typicalAgeRange",
8181									));
8182								}
8183								r#typical_age_range_property = Some({
8184									struct DeserializeWith(Vec<TypicalAgeRangeProperty>);
8185									impl<'de> Deserialize<'de> for DeserializeWith {
8186										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8187										where
8188											D: Deserializer<'de>,
8189										{
8190											Ok(DeserializeWith(serde_with::As::<
8191												serde_with::OneOrMany<serde_with::Same>,
8192											>::deserialize(deserializer)?))
8193										}
8194									}
8195									match map.next_value::<DeserializeWith>() {
8196										Ok(deserialize_with) => deserialize_with.0,
8197										Err(err) => {
8198											return Err(err);
8199										}
8200									}
8201								});
8202							}
8203							Field::UsageInfo => {
8204								if r#usage_info_property.is_some() {
8205									return Err(<A::Error as de::Error>::duplicate_field(
8206										"usageInfo",
8207									));
8208								}
8209								r#usage_info_property = Some({
8210									struct DeserializeWith(Vec<UsageInfoProperty>);
8211									impl<'de> Deserialize<'de> for DeserializeWith {
8212										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8213										where
8214											D: Deserializer<'de>,
8215										{
8216											Ok(DeserializeWith(serde_with::As::<
8217												serde_with::OneOrMany<serde_with::Same>,
8218											>::deserialize(deserializer)?))
8219										}
8220									}
8221									match map.next_value::<DeserializeWith>() {
8222										Ok(deserialize_with) => deserialize_with.0,
8223										Err(err) => {
8224											return Err(err);
8225										}
8226									}
8227								});
8228							}
8229							Field::Version => {
8230								if r#version_property.is_some() {
8231									return Err(<A::Error as de::Error>::duplicate_field(
8232										"version",
8233									));
8234								}
8235								r#version_property = Some({
8236									struct DeserializeWith(Vec<VersionProperty>);
8237									impl<'de> Deserialize<'de> for DeserializeWith {
8238										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8239										where
8240											D: Deserializer<'de>,
8241										{
8242											Ok(DeserializeWith(serde_with::As::<
8243												serde_with::OneOrMany<serde_with::Same>,
8244											>::deserialize(deserializer)?))
8245										}
8246									}
8247									match map.next_value::<DeserializeWith>() {
8248										Ok(deserialize_with) => deserialize_with.0,
8249										Err(err) => {
8250											return Err(err);
8251										}
8252									}
8253								});
8254							}
8255							Field::Video => {
8256								if r#video_property.is_some() {
8257									return Err(<A::Error as de::Error>::duplicate_field("video"));
8258								}
8259								r#video_property = Some({
8260									struct DeserializeWith(Vec<VideoProperty>);
8261									impl<'de> Deserialize<'de> for DeserializeWith {
8262										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8263										where
8264											D: Deserializer<'de>,
8265										{
8266											Ok(DeserializeWith(serde_with::As::<
8267												serde_with::OneOrMany<serde_with::Same>,
8268											>::deserialize(deserializer)?))
8269										}
8270									}
8271									match map.next_value::<DeserializeWith>() {
8272										Ok(deserialize_with) => deserialize_with.0,
8273										Err(err) => {
8274											return Err(err);
8275										}
8276									}
8277								});
8278							}
8279							Field::WorkExample => {
8280								if r#work_example_property.is_some() {
8281									return Err(<A::Error as de::Error>::duplicate_field(
8282										"workExample",
8283									));
8284								}
8285								r#work_example_property = Some({
8286									struct DeserializeWith(Vec<WorkExampleProperty>);
8287									impl<'de> Deserialize<'de> for DeserializeWith {
8288										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8289										where
8290											D: Deserializer<'de>,
8291										{
8292											Ok(DeserializeWith(serde_with::As::<
8293												serde_with::OneOrMany<serde_with::Same>,
8294											>::deserialize(deserializer)?))
8295										}
8296									}
8297									match map.next_value::<DeserializeWith>() {
8298										Ok(deserialize_with) => deserialize_with.0,
8299										Err(err) => {
8300											return Err(err);
8301										}
8302									}
8303								});
8304							}
8305							Field::WorkTranslation => {
8306								if r#work_translation_property.is_some() {
8307									return Err(<A::Error as de::Error>::duplicate_field(
8308										"workTranslation",
8309									));
8310								}
8311								r#work_translation_property = Some({
8312									struct DeserializeWith(Vec<WorkTranslationProperty>);
8313									impl<'de> Deserialize<'de> for DeserializeWith {
8314										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8315										where
8316											D: Deserializer<'de>,
8317										{
8318											Ok(DeserializeWith(serde_with::As::<
8319												serde_with::OneOrMany<serde_with::Same>,
8320											>::deserialize(deserializer)?))
8321										}
8322									}
8323									match map.next_value::<DeserializeWith>() {
8324										Ok(deserialize_with) => deserialize_with.0,
8325										Err(err) => {
8326											return Err(err);
8327										}
8328									}
8329								});
8330							}
8331							Field::EndDate => {
8332								if r#end_date_property.is_some() {
8333									return Err(<A::Error as de::Error>::duplicate_field(
8334										"endDate",
8335									));
8336								}
8337								r#end_date_property = Some({
8338									struct DeserializeWith(Vec<EndDateProperty>);
8339									impl<'de> Deserialize<'de> for DeserializeWith {
8340										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8341										where
8342											D: Deserializer<'de>,
8343										{
8344											Ok(DeserializeWith(serde_with::As::<
8345												serde_with::OneOrMany<serde_with::Same>,
8346											>::deserialize(deserializer)?))
8347										}
8348									}
8349									match map.next_value::<DeserializeWith>() {
8350										Ok(deserialize_with) => deserialize_with.0,
8351										Err(err) => {
8352											return Err(err);
8353										}
8354									}
8355								});
8356							}
8357							Field::Issn => {
8358								if r#issn_property.is_some() {
8359									return Err(<A::Error as de::Error>::duplicate_field("issn"));
8360								}
8361								r#issn_property = Some({
8362									struct DeserializeWith(Vec<IssnProperty>);
8363									impl<'de> Deserialize<'de> for DeserializeWith {
8364										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8365										where
8366											D: Deserializer<'de>,
8367										{
8368											Ok(DeserializeWith(serde_with::As::<
8369												serde_with::OneOrMany<serde_with::Same>,
8370											>::deserialize(deserializer)?))
8371										}
8372									}
8373									match map.next_value::<DeserializeWith>() {
8374										Ok(deserialize_with) => deserialize_with.0,
8375										Err(err) => {
8376											return Err(err);
8377										}
8378									}
8379								});
8380							}
8381							Field::StartDate => {
8382								if r#start_date_property.is_some() {
8383									return Err(<A::Error as de::Error>::duplicate_field(
8384										"startDate",
8385									));
8386								}
8387								r#start_date_property = Some({
8388									struct DeserializeWith(Vec<StartDateProperty>);
8389									impl<'de> Deserialize<'de> for DeserializeWith {
8390										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8391										where
8392											D: Deserializer<'de>,
8393										{
8394											Ok(DeserializeWith(serde_with::As::<
8395												serde_with::OneOrMany<serde_with::Same>,
8396											>::deserialize(deserializer)?))
8397										}
8398									}
8399									match map.next_value::<DeserializeWith>() {
8400										Ok(deserialize_with) => deserialize_with.0,
8401										Err(err) => {
8402											return Err(err);
8403										}
8404									}
8405								});
8406							}
8407							Field::AdditionalType => {
8408								if r#additional_type_property.is_some() {
8409									return Err(<A::Error as de::Error>::duplicate_field(
8410										"additionalType",
8411									));
8412								}
8413								r#additional_type_property = Some({
8414									struct DeserializeWith(Vec<AdditionalTypeProperty>);
8415									impl<'de> Deserialize<'de> for DeserializeWith {
8416										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8417										where
8418											D: Deserializer<'de>,
8419										{
8420											Ok(DeserializeWith(serde_with::As::<
8421												serde_with::OneOrMany<serde_with::Same>,
8422											>::deserialize(deserializer)?))
8423										}
8424									}
8425									match map.next_value::<DeserializeWith>() {
8426										Ok(deserialize_with) => deserialize_with.0,
8427										Err(err) => {
8428											return Err(err);
8429										}
8430									}
8431								});
8432							}
8433							Field::AlternateName => {
8434								if r#alternate_name_property.is_some() {
8435									return Err(<A::Error as de::Error>::duplicate_field(
8436										"alternateName",
8437									));
8438								}
8439								r#alternate_name_property = Some({
8440									struct DeserializeWith(Vec<AlternateNameProperty>);
8441									impl<'de> Deserialize<'de> for DeserializeWith {
8442										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8443										where
8444											D: Deserializer<'de>,
8445										{
8446											Ok(DeserializeWith(serde_with::As::<
8447												serde_with::OneOrMany<serde_with::Same>,
8448											>::deserialize(deserializer)?))
8449										}
8450									}
8451									match map.next_value::<DeserializeWith>() {
8452										Ok(deserialize_with) => deserialize_with.0,
8453										Err(err) => {
8454											return Err(err);
8455										}
8456									}
8457								});
8458							}
8459							Field::Description => {
8460								if r#description_property.is_some() {
8461									return Err(<A::Error as de::Error>::duplicate_field(
8462										"description",
8463									));
8464								}
8465								r#description_property = Some({
8466									struct DeserializeWith(Vec<DescriptionProperty>);
8467									impl<'de> Deserialize<'de> for DeserializeWith {
8468										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8469										where
8470											D: Deserializer<'de>,
8471										{
8472											Ok(DeserializeWith(serde_with::As::<
8473												serde_with::OneOrMany<serde_with::Same>,
8474											>::deserialize(deserializer)?))
8475										}
8476									}
8477									match map.next_value::<DeserializeWith>() {
8478										Ok(deserialize_with) => deserialize_with.0,
8479										Err(err) => {
8480											return Err(err);
8481										}
8482									}
8483								});
8484							}
8485							Field::DisambiguatingDescription => {
8486								if r#disambiguating_description_property.is_some() {
8487									return Err(<A::Error as de::Error>::duplicate_field(
8488										"disambiguatingDescription",
8489									));
8490								}
8491								r#disambiguating_description_property = Some({
8492									struct DeserializeWith(Vec<DisambiguatingDescriptionProperty>);
8493									impl<'de> Deserialize<'de> for DeserializeWith {
8494										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8495										where
8496											D: Deserializer<'de>,
8497										{
8498											Ok(DeserializeWith(serde_with::As::<
8499												serde_with::OneOrMany<serde_with::Same>,
8500											>::deserialize(deserializer)?))
8501										}
8502									}
8503									match map.next_value::<DeserializeWith>() {
8504										Ok(deserialize_with) => deserialize_with.0,
8505										Err(err) => {
8506											return Err(err);
8507										}
8508									}
8509								});
8510							}
8511							Field::Identifier => {
8512								if r#identifier_property.is_some() {
8513									return Err(<A::Error as de::Error>::duplicate_field(
8514										"identifier",
8515									));
8516								}
8517								r#identifier_property = Some({
8518									struct DeserializeWith(Vec<IdentifierProperty>);
8519									impl<'de> Deserialize<'de> for DeserializeWith {
8520										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8521										where
8522											D: Deserializer<'de>,
8523										{
8524											Ok(DeserializeWith(serde_with::As::<
8525												serde_with::OneOrMany<serde_with::Same>,
8526											>::deserialize(deserializer)?))
8527										}
8528									}
8529									match map.next_value::<DeserializeWith>() {
8530										Ok(deserialize_with) => deserialize_with.0,
8531										Err(err) => {
8532											return Err(err);
8533										}
8534									}
8535								});
8536							}
8537							Field::Image => {
8538								if r#image_property.is_some() {
8539									return Err(<A::Error as de::Error>::duplicate_field("image"));
8540								}
8541								r#image_property = Some({
8542									struct DeserializeWith(Vec<ImageProperty>);
8543									impl<'de> Deserialize<'de> for DeserializeWith {
8544										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8545										where
8546											D: Deserializer<'de>,
8547										{
8548											Ok(DeserializeWith(serde_with::As::<
8549												serde_with::OneOrMany<serde_with::Same>,
8550											>::deserialize(deserializer)?))
8551										}
8552									}
8553									match map.next_value::<DeserializeWith>() {
8554										Ok(deserialize_with) => deserialize_with.0,
8555										Err(err) => {
8556											return Err(err);
8557										}
8558									}
8559								});
8560							}
8561							Field::MainEntityOfPage => {
8562								if r#main_entity_of_page_property.is_some() {
8563									return Err(<A::Error as de::Error>::duplicate_field(
8564										"mainEntityOfPage",
8565									));
8566								}
8567								r#main_entity_of_page_property = Some({
8568									struct DeserializeWith(Vec<MainEntityOfPageProperty>);
8569									impl<'de> Deserialize<'de> for DeserializeWith {
8570										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8571										where
8572											D: Deserializer<'de>,
8573										{
8574											Ok(DeserializeWith(serde_with::As::<
8575												serde_with::OneOrMany<serde_with::Same>,
8576											>::deserialize(deserializer)?))
8577										}
8578									}
8579									match map.next_value::<DeserializeWith>() {
8580										Ok(deserialize_with) => deserialize_with.0,
8581										Err(err) => {
8582											return Err(err);
8583										}
8584									}
8585								});
8586							}
8587							Field::Name => {
8588								if r#name_property.is_some() {
8589									return Err(<A::Error as de::Error>::duplicate_field("name"));
8590								}
8591								r#name_property = Some({
8592									struct DeserializeWith(Vec<NameProperty>);
8593									impl<'de> Deserialize<'de> for DeserializeWith {
8594										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8595										where
8596											D: Deserializer<'de>,
8597										{
8598											Ok(DeserializeWith(serde_with::As::<
8599												serde_with::OneOrMany<serde_with::Same>,
8600											>::deserialize(deserializer)?))
8601										}
8602									}
8603									match map.next_value::<DeserializeWith>() {
8604										Ok(deserialize_with) => deserialize_with.0,
8605										Err(err) => {
8606											return Err(err);
8607										}
8608									}
8609								});
8610							}
8611							Field::PotentialAction => {
8612								if r#potential_action_property.is_some() {
8613									return Err(<A::Error as de::Error>::duplicate_field(
8614										"potentialAction",
8615									));
8616								}
8617								r#potential_action_property = Some({
8618									struct DeserializeWith(Vec<PotentialActionProperty>);
8619									impl<'de> Deserialize<'de> for DeserializeWith {
8620										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8621										where
8622											D: Deserializer<'de>,
8623										{
8624											Ok(DeserializeWith(serde_with::As::<
8625												serde_with::OneOrMany<serde_with::Same>,
8626											>::deserialize(deserializer)?))
8627										}
8628									}
8629									match map.next_value::<DeserializeWith>() {
8630										Ok(deserialize_with) => deserialize_with.0,
8631										Err(err) => {
8632											return Err(err);
8633										}
8634									}
8635								});
8636							}
8637							Field::SameAs => {
8638								if r#same_as_property.is_some() {
8639									return Err(<A::Error as de::Error>::duplicate_field("sameAs"));
8640								}
8641								r#same_as_property = Some({
8642									struct DeserializeWith(Vec<SameAsProperty>);
8643									impl<'de> Deserialize<'de> for DeserializeWith {
8644										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8645										where
8646											D: Deserializer<'de>,
8647										{
8648											Ok(DeserializeWith(serde_with::As::<
8649												serde_with::OneOrMany<serde_with::Same>,
8650											>::deserialize(deserializer)?))
8651										}
8652									}
8653									match map.next_value::<DeserializeWith>() {
8654										Ok(deserialize_with) => deserialize_with.0,
8655										Err(err) => {
8656											return Err(err);
8657										}
8658									}
8659								});
8660							}
8661							Field::SubjectOf => {
8662								if r#subject_of_property.is_some() {
8663									return Err(<A::Error as de::Error>::duplicate_field(
8664										"subjectOf",
8665									));
8666								}
8667								r#subject_of_property = Some({
8668									struct DeserializeWith(Vec<SubjectOfProperty>);
8669									impl<'de> Deserialize<'de> for DeserializeWith {
8670										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8671										where
8672											D: Deserializer<'de>,
8673										{
8674											Ok(DeserializeWith(serde_with::As::<
8675												serde_with::OneOrMany<serde_with::Same>,
8676											>::deserialize(deserializer)?))
8677										}
8678									}
8679									match map.next_value::<DeserializeWith>() {
8680										Ok(deserialize_with) => deserialize_with.0,
8681										Err(err) => {
8682											return Err(err);
8683										}
8684									}
8685								});
8686							}
8687							Field::Url => {
8688								if r#url_property.is_some() {
8689									return Err(<A::Error as de::Error>::duplicate_field("url"));
8690								}
8691								r#url_property = Some({
8692									struct DeserializeWith(Vec<UrlProperty>);
8693									impl<'de> Deserialize<'de> for DeserializeWith {
8694										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8695										where
8696											D: Deserializer<'de>,
8697										{
8698											Ok(DeserializeWith(serde_with::As::<
8699												serde_with::OneOrMany<serde_with::Same>,
8700											>::deserialize(deserializer)?))
8701										}
8702									}
8703									match map.next_value::<DeserializeWith>() {
8704										Ok(deserialize_with) => deserialize_with.0,
8705										Err(err) => {
8706											return Err(err);
8707										}
8708									}
8709								});
8710							}
8711							Field::Ignore => {
8712								let _ = map.next_value::<de::IgnoredAny>()?;
8713							}
8714						}
8715					}
8716					Ok(VideoGameSeries {
8717						r#actor: r#actor_property.unwrap_or_default(),
8718						r#actors: r#actors_property.unwrap_or_default(),
8719						r#character_attribute: r#character_attribute_property.unwrap_or_default(),
8720						r#cheat_code: r#cheat_code_property.unwrap_or_default(),
8721						r#contains_season: r#contains_season_property.unwrap_or_default(),
8722						r#director: r#director_property.unwrap_or_default(),
8723						r#directors: r#directors_property.unwrap_or_default(),
8724						r#episode: r#episode_property.unwrap_or_default(),
8725						r#episodes: r#episodes_property.unwrap_or_default(),
8726						r#game_item: r#game_item_property.unwrap_or_default(),
8727						r#game_location: r#game_location_property.unwrap_or_default(),
8728						r#game_platform: r#game_platform_property.unwrap_or_default(),
8729						r#music_by: r#music_by_property.unwrap_or_default(),
8730						r#number_of_episodes: r#number_of_episodes_property.unwrap_or_default(),
8731						r#number_of_players: r#number_of_players_property.unwrap_or_default(),
8732						r#number_of_seasons: r#number_of_seasons_property.unwrap_or_default(),
8733						r#play_mode: r#play_mode_property.unwrap_or_default(),
8734						r#production_company: r#production_company_property.unwrap_or_default(),
8735						r#quest: r#quest_property.unwrap_or_default(),
8736						r#season: r#season_property.unwrap_or_default(),
8737						r#seasons: r#seasons_property.unwrap_or_default(),
8738						r#trailer: r#trailer_property.unwrap_or_default(),
8739						r#about: r#about_property.unwrap_or_default(),
8740						r#abstract: r#abstract_property.unwrap_or_default(),
8741						r#access_mode: r#access_mode_property.unwrap_or_default(),
8742						r#access_mode_sufficient: r#access_mode_sufficient_property
8743							.unwrap_or_default(),
8744						r#accessibility_api: r#accessibility_api_property.unwrap_or_default(),
8745						r#accessibility_control: r#accessibility_control_property
8746							.unwrap_or_default(),
8747						r#accessibility_feature: r#accessibility_feature_property
8748							.unwrap_or_default(),
8749						r#accessibility_hazard: r#accessibility_hazard_property.unwrap_or_default(),
8750						r#accessibility_summary: r#accessibility_summary_property
8751							.unwrap_or_default(),
8752						r#accountable_person: r#accountable_person_property.unwrap_or_default(),
8753						r#acquire_license_page: r#acquire_license_page_property.unwrap_or_default(),
8754						r#aggregate_rating: r#aggregate_rating_property.unwrap_or_default(),
8755						r#alternative_headline: r#alternative_headline_property.unwrap_or_default(),
8756						r#archived_at: r#archived_at_property.unwrap_or_default(),
8757						r#assesses: r#assesses_property.unwrap_or_default(),
8758						r#associated_media: r#associated_media_property.unwrap_or_default(),
8759						r#audience: r#audience_property.unwrap_or_default(),
8760						r#audio: r#audio_property.unwrap_or_default(),
8761						r#author: r#author_property.unwrap_or_default(),
8762						r#award: r#award_property.unwrap_or_default(),
8763						r#awards: r#awards_property.unwrap_or_default(),
8764						r#character: r#character_property.unwrap_or_default(),
8765						r#citation: r#citation_property.unwrap_or_default(),
8766						r#comment: r#comment_property.unwrap_or_default(),
8767						r#comment_count: r#comment_count_property.unwrap_or_default(),
8768						r#conditions_of_access: r#conditions_of_access_property.unwrap_or_default(),
8769						r#content_location: r#content_location_property.unwrap_or_default(),
8770						r#content_rating: r#content_rating_property.unwrap_or_default(),
8771						r#content_reference_time: r#content_reference_time_property
8772							.unwrap_or_default(),
8773						r#contributor: r#contributor_property.unwrap_or_default(),
8774						r#copyright_holder: r#copyright_holder_property.unwrap_or_default(),
8775						r#copyright_notice: r#copyright_notice_property.unwrap_or_default(),
8776						r#copyright_year: r#copyright_year_property.unwrap_or_default(),
8777						r#correction: r#correction_property.unwrap_or_default(),
8778						r#country_of_origin: r#country_of_origin_property.unwrap_or_default(),
8779						r#creative_work_status: r#creative_work_status_property.unwrap_or_default(),
8780						r#creator: r#creator_property.unwrap_or_default(),
8781						r#credit_text: r#credit_text_property.unwrap_or_default(),
8782						r#date_created: r#date_created_property.unwrap_or_default(),
8783						r#date_modified: r#date_modified_property.unwrap_or_default(),
8784						r#date_published: r#date_published_property.unwrap_or_default(),
8785						r#discussion_url: r#discussion_url_property.unwrap_or_default(),
8786						r#edit_eidr: r#edit_eidr_property.unwrap_or_default(),
8787						r#editor: r#editor_property.unwrap_or_default(),
8788						r#educational_alignment: r#educational_alignment_property
8789							.unwrap_or_default(),
8790						r#educational_level: r#educational_level_property.unwrap_or_default(),
8791						r#educational_use: r#educational_use_property.unwrap_or_default(),
8792						r#encoding: r#encoding_property.unwrap_or_default(),
8793						r#encoding_format: r#encoding_format_property.unwrap_or_default(),
8794						r#encodings: r#encodings_property.unwrap_or_default(),
8795						r#example_of_work: r#example_of_work_property.unwrap_or_default(),
8796						r#expires: r#expires_property.unwrap_or_default(),
8797						r#file_format: r#file_format_property.unwrap_or_default(),
8798						r#funder: r#funder_property.unwrap_or_default(),
8799						r#funding: r#funding_property.unwrap_or_default(),
8800						r#genre: r#genre_property.unwrap_or_default(),
8801						r#has_part: r#has_part_property.unwrap_or_default(),
8802						r#headline: r#headline_property.unwrap_or_default(),
8803						r#in_language: r#in_language_property.unwrap_or_default(),
8804						r#interaction_statistic: r#interaction_statistic_property
8805							.unwrap_or_default(),
8806						r#interactivity_type: r#interactivity_type_property.unwrap_or_default(),
8807						r#interpreted_as_claim: r#interpreted_as_claim_property.unwrap_or_default(),
8808						r#is_accessible_for_free: r#is_accessible_for_free_property
8809							.unwrap_or_default(),
8810						r#is_based_on: r#is_based_on_property.unwrap_or_default(),
8811						r#is_based_on_url: r#is_based_on_url_property.unwrap_or_default(),
8812						r#is_family_friendly: r#is_family_friendly_property.unwrap_or_default(),
8813						r#is_part_of: r#is_part_of_property.unwrap_or_default(),
8814						r#keywords: r#keywords_property.unwrap_or_default(),
8815						r#learning_resource_type: r#learning_resource_type_property
8816							.unwrap_or_default(),
8817						r#license: r#license_property.unwrap_or_default(),
8818						r#location_created: r#location_created_property.unwrap_or_default(),
8819						r#main_entity: r#main_entity_property.unwrap_or_default(),
8820						r#maintainer: r#maintainer_property.unwrap_or_default(),
8821						r#material: r#material_property.unwrap_or_default(),
8822						r#material_extent: r#material_extent_property.unwrap_or_default(),
8823						r#mentions: r#mentions_property.unwrap_or_default(),
8824						r#offers: r#offers_property.unwrap_or_default(),
8825						r#pattern: r#pattern_property.unwrap_or_default(),
8826						r#position: r#position_property.unwrap_or_default(),
8827						r#producer: r#producer_property.unwrap_or_default(),
8828						r#provider: r#provider_property.unwrap_or_default(),
8829						r#publication: r#publication_property.unwrap_or_default(),
8830						r#publisher: r#publisher_property.unwrap_or_default(),
8831						r#publisher_imprint: r#publisher_imprint_property.unwrap_or_default(),
8832						r#publishing_principles: r#publishing_principles_property
8833							.unwrap_or_default(),
8834						r#recorded_at: r#recorded_at_property.unwrap_or_default(),
8835						r#released_event: r#released_event_property.unwrap_or_default(),
8836						r#review: r#review_property.unwrap_or_default(),
8837						r#reviews: r#reviews_property.unwrap_or_default(),
8838						r#schema_version: r#schema_version_property.unwrap_or_default(),
8839						r#sd_date_published: r#sd_date_published_property.unwrap_or_default(),
8840						r#sd_license: r#sd_license_property.unwrap_or_default(),
8841						r#sd_publisher: r#sd_publisher_property.unwrap_or_default(),
8842						r#size: r#size_property.unwrap_or_default(),
8843						r#source_organization: r#source_organization_property.unwrap_or_default(),
8844						r#spatial: r#spatial_property.unwrap_or_default(),
8845						r#spatial_coverage: r#spatial_coverage_property.unwrap_or_default(),
8846						r#sponsor: r#sponsor_property.unwrap_or_default(),
8847						r#teaches: r#teaches_property.unwrap_or_default(),
8848						r#temporal: r#temporal_property.unwrap_or_default(),
8849						r#temporal_coverage: r#temporal_coverage_property.unwrap_or_default(),
8850						r#text: r#text_property.unwrap_or_default(),
8851						r#thumbnail: r#thumbnail_property.unwrap_or_default(),
8852						r#thumbnail_url: r#thumbnail_url_property.unwrap_or_default(),
8853						r#time_required: r#time_required_property.unwrap_or_default(),
8854						r#translation_of_work: r#translation_of_work_property.unwrap_or_default(),
8855						r#translator: r#translator_property.unwrap_or_default(),
8856						r#typical_age_range: r#typical_age_range_property.unwrap_or_default(),
8857						r#usage_info: r#usage_info_property.unwrap_or_default(),
8858						r#version: r#version_property.unwrap_or_default(),
8859						r#video: r#video_property.unwrap_or_default(),
8860						r#work_example: r#work_example_property.unwrap_or_default(),
8861						r#work_translation: r#work_translation_property.unwrap_or_default(),
8862						r#end_date: r#end_date_property.unwrap_or_default(),
8863						r#issn: r#issn_property.unwrap_or_default(),
8864						r#start_date: r#start_date_property.unwrap_or_default(),
8865						r#additional_type: r#additional_type_property.unwrap_or_default(),
8866						r#alternate_name: r#alternate_name_property.unwrap_or_default(),
8867						r#description: r#description_property.unwrap_or_default(),
8868						r#disambiguating_description: r#disambiguating_description_property
8869							.unwrap_or_default(),
8870						r#identifier: r#identifier_property.unwrap_or_default(),
8871						r#image: r#image_property.unwrap_or_default(),
8872						r#main_entity_of_page: r#main_entity_of_page_property.unwrap_or_default(),
8873						r#name: r#name_property.unwrap_or_default(),
8874						r#potential_action: r#potential_action_property.unwrap_or_default(),
8875						r#same_as: r#same_as_property.unwrap_or_default(),
8876						r#subject_of: r#subject_of_property.unwrap_or_default(),
8877						r#url: r#url_property.unwrap_or_default(),
8878					})
8879				}
8880			}
8881			const FIELDS: &[&str] = &[
8882				"actor",
8883				"actors",
8884				"characterAttribute",
8885				"cheatCode",
8886				"containsSeason",
8887				"director",
8888				"directors",
8889				"episode",
8890				"episodes",
8891				"gameItem",
8892				"gameLocation",
8893				"gamePlatform",
8894				"musicBy",
8895				"numberOfEpisodes",
8896				"numberOfPlayers",
8897				"numberOfSeasons",
8898				"playMode",
8899				"productionCompany",
8900				"quest",
8901				"season",
8902				"seasons",
8903				"trailer",
8904				"about",
8905				"abstract",
8906				"accessMode",
8907				"accessModeSufficient",
8908				"accessibilityAPI",
8909				"accessibilityControl",
8910				"accessibilityFeature",
8911				"accessibilityHazard",
8912				"accessibilitySummary",
8913				"accountablePerson",
8914				"acquireLicensePage",
8915				"aggregateRating",
8916				"alternativeHeadline",
8917				"archivedAt",
8918				"assesses",
8919				"associatedMedia",
8920				"audience",
8921				"audio",
8922				"author",
8923				"award",
8924				"awards",
8925				"character",
8926				"citation",
8927				"comment",
8928				"commentCount",
8929				"conditionsOfAccess",
8930				"contentLocation",
8931				"contentRating",
8932				"contentReferenceTime",
8933				"contributor",
8934				"copyrightHolder",
8935				"copyrightNotice",
8936				"copyrightYear",
8937				"correction",
8938				"countryOfOrigin",
8939				"creativeWorkStatus",
8940				"creator",
8941				"creditText",
8942				"dateCreated",
8943				"dateModified",
8944				"datePublished",
8945				"discussionUrl",
8946				"editEIDR",
8947				"editor",
8948				"educationalAlignment",
8949				"educationalLevel",
8950				"educationalUse",
8951				"encoding",
8952				"encodingFormat",
8953				"encodings",
8954				"exampleOfWork",
8955				"expires",
8956				"fileFormat",
8957				"funder",
8958				"funding",
8959				"genre",
8960				"hasPart",
8961				"headline",
8962				"inLanguage",
8963				"interactionStatistic",
8964				"interactivityType",
8965				"interpretedAsClaim",
8966				"isAccessibleForFree",
8967				"isBasedOn",
8968				"isBasedOnUrl",
8969				"isFamilyFriendly",
8970				"isPartOf",
8971				"keywords",
8972				"learningResourceType",
8973				"license",
8974				"locationCreated",
8975				"mainEntity",
8976				"maintainer",
8977				"material",
8978				"materialExtent",
8979				"mentions",
8980				"offers",
8981				"pattern",
8982				"position",
8983				"producer",
8984				"provider",
8985				"publication",
8986				"publisher",
8987				"publisherImprint",
8988				"publishingPrinciples",
8989				"recordedAt",
8990				"releasedEvent",
8991				"review",
8992				"reviews",
8993				"schemaVersion",
8994				"sdDatePublished",
8995				"sdLicense",
8996				"sdPublisher",
8997				"size",
8998				"sourceOrganization",
8999				"spatial",
9000				"spatialCoverage",
9001				"sponsor",
9002				"teaches",
9003				"temporal",
9004				"temporalCoverage",
9005				"text",
9006				"thumbnail",
9007				"thumbnailUrl",
9008				"timeRequired",
9009				"translationOfWork",
9010				"translator",
9011				"typicalAgeRange",
9012				"usageInfo",
9013				"version",
9014				"video",
9015				"workExample",
9016				"workTranslation",
9017				"endDate",
9018				"issn",
9019				"startDate",
9020				"additionalType",
9021				"alternateName",
9022				"description",
9023				"disambiguatingDescription",
9024				"identifier",
9025				"image",
9026				"mainEntityOfPage",
9027				"name",
9028				"potentialAction",
9029				"sameAs",
9030				"subjectOf",
9031				"url",
9032			];
9033			deserializer.deserialize_struct("VideoGameSeries", FIELDS, ClassVisitor)
9034		}
9035	}
9036}