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