VideoGame::countriesNotSupported()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Spatie\SchemaOrg;
4
5
use \Spatie\SchemaOrg\Contracts\VideoGameContract;
6
use \Spatie\SchemaOrg\Contracts\CreativeWorkContract;
7
use \Spatie\SchemaOrg\Contracts\GameContract;
8
use \Spatie\SchemaOrg\Contracts\SoftwareApplicationContract;
9
use \Spatie\SchemaOrg\Contracts\ThingContract;
10
11
/**
12
 * A video game is an electronic game that involves human interaction with a
13
 * user interface to generate visual feedback on a video device.
14
 *
15
 * @see http://schema.org/VideoGame
16
 *
17
 */
18
class VideoGame extends BaseType implements VideoGameContract, CreativeWorkContract, GameContract, SoftwareApplicationContract, ThingContract
19
{
20
    /**
21
     * The subject matter of the content.
22
     *
23
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $about
24
     *
25
     * @return static
26
     *
27
     * @see http://schema.org/about
28
     */
29
    public function about($about)
30
    {
31
        return $this->setProperty('about', $about);
32
    }
33
34
    /**
35
     * The human sensory perceptual system or cognitive faculty through which a
36
     * person may process or perceive information. Expected values include:
37
     * auditory, tactile, textual, visual, colorDependent, chartOnVisual,
38
     * chemOnVisual, diagramOnVisual, mathOnVisual, musicOnVisual, textOnVisual.
39
     *
40
     * @param string|string[] $accessMode
41
     *
42
     * @return static
43
     *
44
     * @see http://schema.org/accessMode
45
     */
46
    public function accessMode($accessMode)
47
    {
48
        return $this->setProperty('accessMode', $accessMode);
49
    }
50
51
    /**
52
     * A list of single or combined accessModes that are sufficient to
53
     * understand all the intellectual content of a resource. Expected values
54
     * include:  auditory, tactile, textual, visual.
55
     *
56
     * @param \Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[] $accessModeSufficient
57
     *
58
     * @return static
59
     *
60
     * @see http://schema.org/accessModeSufficient
61
     */
62
    public function accessModeSufficient($accessModeSufficient)
63
    {
64
        return $this->setProperty('accessModeSufficient', $accessModeSufficient);
65
    }
66
67
    /**
68
     * Indicates that the resource is compatible with the referenced
69
     * accessibility API ([WebSchemas wiki lists possible
70
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
71
     *
72
     * @param string|string[] $accessibilityAPI
73
     *
74
     * @return static
75
     *
76
     * @see http://schema.org/accessibilityAPI
77
     */
78
    public function accessibilityAPI($accessibilityAPI)
79
    {
80
        return $this->setProperty('accessibilityAPI', $accessibilityAPI);
81
    }
82
83
    /**
84
     * Identifies input methods that are sufficient to fully control the
85
     * described resource ([WebSchemas wiki lists possible
86
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
87
     *
88
     * @param string|string[] $accessibilityControl
89
     *
90
     * @return static
91
     *
92
     * @see http://schema.org/accessibilityControl
93
     */
94
    public function accessibilityControl($accessibilityControl)
95
    {
96
        return $this->setProperty('accessibilityControl', $accessibilityControl);
97
    }
98
99
    /**
100
     * Content features of the resource, such as accessible media, alternatives
101
     * and supported enhancements for accessibility ([WebSchemas wiki lists
102
     * possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
103
     *
104
     * @param string|string[] $accessibilityFeature
105
     *
106
     * @return static
107
     *
108
     * @see http://schema.org/accessibilityFeature
109
     */
110
    public function accessibilityFeature($accessibilityFeature)
111
    {
112
        return $this->setProperty('accessibilityFeature', $accessibilityFeature);
113
    }
114
115
    /**
116
     * A characteristic of the described resource that is physiologically
117
     * dangerous to some users. Related to WCAG 2.0 guideline 2.3 ([WebSchemas
118
     * wiki lists possible
119
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
120
     *
121
     * @param string|string[] $accessibilityHazard
122
     *
123
     * @return static
124
     *
125
     * @see http://schema.org/accessibilityHazard
126
     */
127
    public function accessibilityHazard($accessibilityHazard)
128
    {
129
        return $this->setProperty('accessibilityHazard', $accessibilityHazard);
130
    }
131
132
    /**
133
     * A human-readable summary of specific accessibility features or
134
     * deficiencies, consistent with the other accessibility metadata but
135
     * expressing subtleties such as "short descriptions are present but long
136
     * descriptions will be needed for non-visual users" or "short descriptions
137
     * are present and no long descriptions are needed."
138
     *
139
     * @param string|string[] $accessibilitySummary
140
     *
141
     * @return static
142
     *
143
     * @see http://schema.org/accessibilitySummary
144
     */
145
    public function accessibilitySummary($accessibilitySummary)
146
    {
147
        return $this->setProperty('accessibilitySummary', $accessibilitySummary);
148
    }
149
150
    /**
151
     * Specifies the Person that is legally accountable for the CreativeWork.
152
     *
153
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $accountablePerson
154
     *
155
     * @return static
156
     *
157
     * @see http://schema.org/accountablePerson
158
     */
159
    public function accountablePerson($accountablePerson)
160
    {
161
        return $this->setProperty('accountablePerson', $accountablePerson);
162
    }
163
164
    /**
165
     * An actor, e.g. in tv, radio, movie, video games etc., or in an event.
166
     * Actors can be associated with individual items or with a series, episode,
167
     * clip.
168
     *
169
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $actor
170
     *
171
     * @return static
172
     *
173
     * @see http://schema.org/actor
174
     */
175
    public function actor($actor)
176
    {
177
        return $this->setProperty('actor', $actor);
178
    }
179
180
    /**
181
     * An actor, e.g. in tv, radio, movie, video games etc. Actors can be
182
     * associated with individual items or with a series, episode, clip.
183
     *
184
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $actors
185
     *
186
     * @return static
187
     *
188
     * @see http://schema.org/actors
189
     */
190
    public function actors($actors)
191
    {
192
        return $this->setProperty('actors', $actors);
193
    }
194
195
    /**
196
     * An additional type for the item, typically used for adding more specific
197
     * types from external vocabularies in microdata syntax. This is a
198
     * relationship between something and a class that the thing is in. In RDFa
199
     * syntax, it is better to use the native RDFa syntax - the 'typeof'
200
     * attribute - for multiple types. Schema.org tools may have only weaker
201
     * understanding of extra types, in particular those defined externally.
202
     *
203
     * @param string|string[] $additionalType
204
     *
205
     * @return static
206
     *
207
     * @see http://schema.org/additionalType
208
     */
209
    public function additionalType($additionalType)
210
    {
211
        return $this->setProperty('additionalType', $additionalType);
212
    }
213
214
    /**
215
     * The overall rating, based on a collection of reviews or ratings, of the
216
     * item.
217
     *
218
     * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
219
     *
220
     * @return static
221
     *
222
     * @see http://schema.org/aggregateRating
223
     */
224
    public function aggregateRating($aggregateRating)
225
    {
226
        return $this->setProperty('aggregateRating', $aggregateRating);
227
    }
228
229
    /**
230
     * An alias for the item.
231
     *
232
     * @param string|string[] $alternateName
233
     *
234
     * @return static
235
     *
236
     * @see http://schema.org/alternateName
237
     */
238
    public function alternateName($alternateName)
239
    {
240
        return $this->setProperty('alternateName', $alternateName);
241
    }
242
243
    /**
244
     * A secondary title of the CreativeWork.
245
     *
246
     * @param string|string[] $alternativeHeadline
247
     *
248
     * @return static
249
     *
250
     * @see http://schema.org/alternativeHeadline
251
     */
252
    public function alternativeHeadline($alternativeHeadline)
253
    {
254
        return $this->setProperty('alternativeHeadline', $alternativeHeadline);
255
    }
256
257
    /**
258
     * Type of software application, e.g. 'Game, Multimedia'.
259
     *
260
     * @param string|string[] $applicationCategory
261
     *
262
     * @return static
263
     *
264
     * @see http://schema.org/applicationCategory
265
     */
266
    public function applicationCategory($applicationCategory)
267
    {
268
        return $this->setProperty('applicationCategory', $applicationCategory);
269
    }
270
271
    /**
272
     * Subcategory of the application, e.g. 'Arcade Game'.
273
     *
274
     * @param string|string[] $applicationSubCategory
275
     *
276
     * @return static
277
     *
278
     * @see http://schema.org/applicationSubCategory
279
     */
280
    public function applicationSubCategory($applicationSubCategory)
281
    {
282
        return $this->setProperty('applicationSubCategory', $applicationSubCategory);
283
    }
284
285
    /**
286
     * The name of the application suite to which the application belongs (e.g.
287
     * Excel belongs to Office).
288
     *
289
     * @param string|string[] $applicationSuite
290
     *
291
     * @return static
292
     *
293
     * @see http://schema.org/applicationSuite
294
     */
295
    public function applicationSuite($applicationSuite)
296
    {
297
        return $this->setProperty('applicationSuite', $applicationSuite);
298
    }
299
300
    /**
301
     * A media object that encodes this CreativeWork. This property is a synonym
302
     * for encoding.
303
     *
304
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
305
     *
306
     * @return static
307
     *
308
     * @see http://schema.org/associatedMedia
309
     */
310
    public function associatedMedia($associatedMedia)
311
    {
312
        return $this->setProperty('associatedMedia', $associatedMedia);
313
    }
314
315
    /**
316
     * An intended audience, i.e. a group for whom something was created.
317
     *
318
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
319
     *
320
     * @return static
321
     *
322
     * @see http://schema.org/audience
323
     */
324
    public function audience($audience)
325
    {
326
        return $this->setProperty('audience', $audience);
327
    }
328
329
    /**
330
     * An embedded audio object.
331
     *
332
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
333
     *
334
     * @return static
335
     *
336
     * @see http://schema.org/audio
337
     */
338
    public function audio($audio)
339
    {
340
        return $this->setProperty('audio', $audio);
341
    }
342
343
    /**
344
     * The author of this content or rating. Please note that author is special
345
     * in that HTML 5 provides a special mechanism for indicating authorship via
346
     * the rel tag. That is equivalent to this and may be used interchangeably.
347
     *
348
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
349
     *
350
     * @return static
351
     *
352
     * @see http://schema.org/author
353
     */
354
    public function author($author)
355
    {
356
        return $this->setProperty('author', $author);
357
    }
358
359
    /**
360
     * Device required to run the application. Used in cases where a specific
361
     * make/model is required to run the application.
362
     *
363
     * @param string|string[] $availableOnDevice
364
     *
365
     * @return static
366
     *
367
     * @see http://schema.org/availableOnDevice
368
     */
369
    public function availableOnDevice($availableOnDevice)
370
    {
371
        return $this->setProperty('availableOnDevice', $availableOnDevice);
372
    }
373
374
    /**
375
     * An award won by or for this item.
376
     *
377
     * @param string|string[] $award
378
     *
379
     * @return static
380
     *
381
     * @see http://schema.org/award
382
     */
383
    public function award($award)
384
    {
385
        return $this->setProperty('award', $award);
386
    }
387
388
    /**
389
     * Awards won by or for this item.
390
     *
391
     * @param string|string[] $awards
392
     *
393
     * @return static
394
     *
395
     * @see http://schema.org/awards
396
     */
397
    public function awards($awards)
398
    {
399
        return $this->setProperty('awards', $awards);
400
    }
401
402
    /**
403
     * Fictional person connected with a creative work.
404
     *
405
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
406
     *
407
     * @return static
408
     *
409
     * @see http://schema.org/character
410
     */
411
    public function character($character)
412
    {
413
        return $this->setProperty('character', $character);
414
    }
415
416
    /**
417
     * A piece of data that represents a particular aspect of a fictional
418
     * character (skill, power, character points, advantage, disadvantage).
419
     *
420
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $characterAttribute
421
     *
422
     * @return static
423
     *
424
     * @see http://schema.org/characterAttribute
425
     */
426
    public function characterAttribute($characterAttribute)
427
    {
428
        return $this->setProperty('characterAttribute', $characterAttribute);
429
    }
430
431
    /**
432
     * Cheat codes to the game.
433
     *
434
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $cheatCode
435
     *
436
     * @return static
437
     *
438
     * @see http://schema.org/cheatCode
439
     */
440
    public function cheatCode($cheatCode)
441
    {
442
        return $this->setProperty('cheatCode', $cheatCode);
443
    }
444
445
    /**
446
     * A citation or reference to another creative work, such as another
447
     * publication, web page, scholarly article, etc.
448
     *
449
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
450
     *
451
     * @return static
452
     *
453
     * @see http://schema.org/citation
454
     */
455
    public function citation($citation)
456
    {
457
        return $this->setProperty('citation', $citation);
458
    }
459
460
    /**
461
     * Comments, typically from users.
462
     *
463
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
464
     *
465
     * @return static
466
     *
467
     * @see http://schema.org/comment
468
     */
469
    public function comment($comment)
470
    {
471
        return $this->setProperty('comment', $comment);
472
    }
473
474
    /**
475
     * The number of comments this CreativeWork (e.g. Article, Question or
476
     * Answer) has received. This is most applicable to works published in Web
477
     * sites with commenting system; additional comments may exist elsewhere.
478
     *
479
     * @param int|int[] $commentCount
480
     *
481
     * @return static
482
     *
483
     * @see http://schema.org/commentCount
484
     */
485
    public function commentCount($commentCount)
486
    {
487
        return $this->setProperty('commentCount', $commentCount);
488
    }
489
490
    /**
491
     * The location depicted or described in the content. For example, the
492
     * location in a photograph or painting.
493
     *
494
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
495
     *
496
     * @return static
497
     *
498
     * @see http://schema.org/contentLocation
499
     */
500
    public function contentLocation($contentLocation)
501
    {
502
        return $this->setProperty('contentLocation', $contentLocation);
503
    }
504
505
    /**
506
     * Official rating of a piece of content&#x2014;for example,'MPAA PG-13'.
507
     *
508
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
509
     *
510
     * @return static
511
     *
512
     * @see http://schema.org/contentRating
513
     */
514
    public function contentRating($contentRating)
515
    {
516
        return $this->setProperty('contentRating', $contentRating);
517
    }
518
519
    /**
520
     * A secondary contributor to the CreativeWork or Event.
521
     *
522
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $contributor
523
     *
524
     * @return static
525
     *
526
     * @see http://schema.org/contributor
527
     */
528
    public function contributor($contributor)
529
    {
530
        return $this->setProperty('contributor', $contributor);
531
    }
532
533
    /**
534
     * The party holding the legal copyright to the CreativeWork.
535
     *
536
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $copyrightHolder
537
     *
538
     * @return static
539
     *
540
     * @see http://schema.org/copyrightHolder
541
     */
542
    public function copyrightHolder($copyrightHolder)
543
    {
544
        return $this->setProperty('copyrightHolder', $copyrightHolder);
545
    }
546
547
    /**
548
     * The year during which the claimed copyright for the CreativeWork was
549
     * first asserted.
550
     *
551
     * @param float|float[]|int|int[] $copyrightYear
552
     *
553
     * @return static
554
     *
555
     * @see http://schema.org/copyrightYear
556
     */
557
    public function copyrightYear($copyrightYear)
558
    {
559
        return $this->setProperty('copyrightYear', $copyrightYear);
560
    }
561
562
    /**
563
     * Countries for which the application is not supported. You can also
564
     * provide the two-letter ISO 3166-1 alpha-2 country code.
565
     *
566
     * @param string|string[] $countriesNotSupported
567
     *
568
     * @return static
569
     *
570
     * @see http://schema.org/countriesNotSupported
571
     */
572
    public function countriesNotSupported($countriesNotSupported)
573
    {
574
        return $this->setProperty('countriesNotSupported', $countriesNotSupported);
575
    }
576
577
    /**
578
     * Countries for which the application is supported. You can also provide
579
     * the two-letter ISO 3166-1 alpha-2 country code.
580
     *
581
     * @param string|string[] $countriesSupported
582
     *
583
     * @return static
584
     *
585
     * @see http://schema.org/countriesSupported
586
     */
587
    public function countriesSupported($countriesSupported)
588
    {
589
        return $this->setProperty('countriesSupported', $countriesSupported);
590
    }
591
592
    /**
593
     * The creator/author of this CreativeWork. This is the same as the Author
594
     * property for CreativeWork.
595
     *
596
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $creator
597
     *
598
     * @return static
599
     *
600
     * @see http://schema.org/creator
601
     */
602
    public function creator($creator)
603
    {
604
        return $this->setProperty('creator', $creator);
605
    }
606
607
    /**
608
     * The date on which the CreativeWork was created or the item was added to a
609
     * DataFeed.
610
     *
611
     * @param \DateTimeInterface|\DateTimeInterface[] $dateCreated
612
     *
613
     * @return static
614
     *
615
     * @see http://schema.org/dateCreated
616
     */
617
    public function dateCreated($dateCreated)
618
    {
619
        return $this->setProperty('dateCreated', $dateCreated);
620
    }
621
622
    /**
623
     * The date on which the CreativeWork was most recently modified or when the
624
     * item's entry was modified within a DataFeed.
625
     *
626
     * @param \DateTimeInterface|\DateTimeInterface[] $dateModified
627
     *
628
     * @return static
629
     *
630
     * @see http://schema.org/dateModified
631
     */
632
    public function dateModified($dateModified)
633
    {
634
        return $this->setProperty('dateModified', $dateModified);
635
    }
636
637
    /**
638
     * Date of first broadcast/publication.
639
     *
640
     * @param \DateTimeInterface|\DateTimeInterface[] $datePublished
641
     *
642
     * @return static
643
     *
644
     * @see http://schema.org/datePublished
645
     */
646
    public function datePublished($datePublished)
647
    {
648
        return $this->setProperty('datePublished', $datePublished);
649
    }
650
651
    /**
652
     * A description of the item.
653
     *
654
     * @param string|string[] $description
655
     *
656
     * @return static
657
     *
658
     * @see http://schema.org/description
659
     */
660
    public function description($description)
661
    {
662
        return $this->setProperty('description', $description);
663
    }
664
665
    /**
666
     * Device required to run the application. Used in cases where a specific
667
     * make/model is required to run the application.
668
     *
669
     * @param string|string[] $device
670
     *
671
     * @return static
672
     *
673
     * @see http://schema.org/device
674
     */
675
    public function device($device)
676
    {
677
        return $this->setProperty('device', $device);
678
    }
679
680
    /**
681
     * A director of e.g. tv, radio, movie, video gaming etc. content, or of an
682
     * event. Directors can be associated with individual items or with a
683
     * series, episode, clip.
684
     *
685
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $director
686
     *
687
     * @return static
688
     *
689
     * @see http://schema.org/director
690
     */
691
    public function director($director)
692
    {
693
        return $this->setProperty('director', $director);
694
    }
695
696
    /**
697
     * A director of e.g. tv, radio, movie, video games etc. content. Directors
698
     * can be associated with individual items or with a series, episode, clip.
699
     *
700
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $directors
701
     *
702
     * @return static
703
     *
704
     * @see http://schema.org/directors
705
     */
706
    public function directors($directors)
707
    {
708
        return $this->setProperty('directors', $directors);
709
    }
710
711
    /**
712
     * A sub property of description. A short description of the item used to
713
     * disambiguate from other, similar items. Information from other properties
714
     * (in particular, name) may be necessary for the description to be useful
715
     * for disambiguation.
716
     *
717
     * @param string|string[] $disambiguatingDescription
718
     *
719
     * @return static
720
     *
721
     * @see http://schema.org/disambiguatingDescription
722
     */
723
    public function disambiguatingDescription($disambiguatingDescription)
724
    {
725
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
726
    }
727
728
    /**
729
     * A link to the page containing the comments of the CreativeWork.
730
     *
731
     * @param string|string[] $discussionUrl
732
     *
733
     * @return static
734
     *
735
     * @see http://schema.org/discussionUrl
736
     */
737
    public function discussionUrl($discussionUrl)
738
    {
739
        return $this->setProperty('discussionUrl', $discussionUrl);
740
    }
741
742
    /**
743
     * If the file can be downloaded, URL to download the binary.
744
     *
745
     * @param string|string[] $downloadUrl
746
     *
747
     * @return static
748
     *
749
     * @see http://schema.org/downloadUrl
750
     */
751
    public function downloadUrl($downloadUrl)
752
    {
753
        return $this->setProperty('downloadUrl', $downloadUrl);
754
    }
755
756
    /**
757
     * Specifies the Person who edited the CreativeWork.
758
     *
759
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
760
     *
761
     * @return static
762
     *
763
     * @see http://schema.org/editor
764
     */
765
    public function editor($editor)
766
    {
767
        return $this->setProperty('editor', $editor);
768
    }
769
770
    /**
771
     * An alignment to an established educational framework.
772
     *
773
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
774
     *
775
     * @return static
776
     *
777
     * @see http://schema.org/educationalAlignment
778
     */
779
    public function educationalAlignment($educationalAlignment)
780
    {
781
        return $this->setProperty('educationalAlignment', $educationalAlignment);
782
    }
783
784
    /**
785
     * The purpose of a work in the context of education; for example,
786
     * 'assignment', 'group work'.
787
     *
788
     * @param string|string[] $educationalUse
789
     *
790
     * @return static
791
     *
792
     * @see http://schema.org/educationalUse
793
     */
794
    public function educationalUse($educationalUse)
795
    {
796
        return $this->setProperty('educationalUse', $educationalUse);
797
    }
798
799
    /**
800
     * A media object that encodes this CreativeWork. This property is a synonym
801
     * for associatedMedia.
802
     *
803
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
804
     *
805
     * @return static
806
     *
807
     * @see http://schema.org/encoding
808
     */
809
    public function encoding($encoding)
810
    {
811
        return $this->setProperty('encoding', $encoding);
812
    }
813
814
    /**
815
     * Media type typically expressed using a MIME format (see [IANA
816
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
817
     * [MDN
818
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
819
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
820
     * .mp3 etc.).
821
     * 
822
     * In cases where a [[CreativeWork]] has several media type representations,
823
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
824
     * particular [[encodingFormat]] information.
825
     * 
826
     * Unregistered or niche encoding and file formats can be indicated instead
827
     * via the most appropriate URL, e.g. defining Web page or a
828
     * Wikipedia/Wikidata entry.
829
     *
830
     * @param string|string[] $encodingFormat
831
     *
832
     * @return static
833
     *
834
     * @see http://schema.org/encodingFormat
835
     */
836
    public function encodingFormat($encodingFormat)
837
    {
838
        return $this->setProperty('encodingFormat', $encodingFormat);
839
    }
840
841
    /**
842
     * A media object that encodes this CreativeWork.
843
     *
844
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
845
     *
846
     * @return static
847
     *
848
     * @see http://schema.org/encodings
849
     */
850
    public function encodings($encodings)
851
    {
852
        return $this->setProperty('encodings', $encodings);
853
    }
854
855
    /**
856
     * A creative work that this work is an
857
     * example/instance/realization/derivation of.
858
     *
859
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
860
     *
861
     * @return static
862
     *
863
     * @see http://schema.org/exampleOfWork
864
     */
865
    public function exampleOfWork($exampleOfWork)
866
    {
867
        return $this->setProperty('exampleOfWork', $exampleOfWork);
868
    }
869
870
    /**
871
     * Date the content expires and is no longer useful or available. For
872
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
873
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
874
     * publisher wants to indicate that it may no longer be relevant (or helpful
875
     * to highlight) after some date.
876
     *
877
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
878
     *
879
     * @return static
880
     *
881
     * @see http://schema.org/expires
882
     */
883
    public function expires($expires)
884
    {
885
        return $this->setProperty('expires', $expires);
886
    }
887
888
    /**
889
     * Features or modules provided by this application (and possibly required
890
     * by other applications).
891
     *
892
     * @param string|string[] $featureList
893
     *
894
     * @return static
895
     *
896
     * @see http://schema.org/featureList
897
     */
898
    public function featureList($featureList)
899
    {
900
        return $this->setProperty('featureList', $featureList);
901
    }
902
903
    /**
904
     * Media type, typically MIME format (see [IANA
905
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
906
     * the content e.g. application/zip of a SoftwareApplication binary. In
907
     * cases where a CreativeWork has several media type representations,
908
     * 'encoding' can be used to indicate each MediaObject alongside particular
909
     * fileFormat information. Unregistered or niche file formats can be
910
     * indicated instead via the most appropriate URL, e.g. defining Web page or
911
     * a Wikipedia entry.
912
     *
913
     * @param string|string[] $fileFormat
914
     *
915
     * @return static
916
     *
917
     * @see http://schema.org/fileFormat
918
     */
919
    public function fileFormat($fileFormat)
920
    {
921
        return $this->setProperty('fileFormat', $fileFormat);
922
    }
923
924
    /**
925
     * Size of the application / package (e.g. 18MB). In the absence of a unit
926
     * (MB, KB etc.), KB will be assumed.
927
     *
928
     * @param string|string[] $fileSize
929
     *
930
     * @return static
931
     *
932
     * @see http://schema.org/fileSize
933
     */
934
    public function fileSize($fileSize)
935
    {
936
        return $this->setProperty('fileSize', $fileSize);
937
    }
938
939
    /**
940
     * A person or organization that supports (sponsors) something through some
941
     * kind of financial contribution.
942
     *
943
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
944
     *
945
     * @return static
946
     *
947
     * @see http://schema.org/funder
948
     */
949
    public function funder($funder)
950
    {
951
        return $this->setProperty('funder', $funder);
952
    }
953
954
    /**
955
     * An item is an object within the game world that can be collected by a
956
     * player or, occasionally, a non-player character.
957
     *
958
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $gameItem
959
     *
960
     * @return static
961
     *
962
     * @see http://schema.org/gameItem
963
     */
964
    public function gameItem($gameItem)
965
    {
966
        return $this->setProperty('gameItem', $gameItem);
967
    }
968
969
    /**
970
     * Real or fictional location of the game (or part of game).
971
     *
972
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[]|\Spatie\SchemaOrg\Contracts\PostalAddressContract|\Spatie\SchemaOrg\Contracts\PostalAddressContract[]|string|string[] $gameLocation
973
     *
974
     * @return static
975
     *
976
     * @see http://schema.org/gameLocation
977
     */
978
    public function gameLocation($gameLocation)
979
    {
980
        return $this->setProperty('gameLocation', $gameLocation);
981
    }
982
983
    /**
984
     * The electronic systems used to play <a
985
     * href="http://en.wikipedia.org/wiki/Category:Video_game_platforms">video
986
     * games</a>.
987
     *
988
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[]|string|string[] $gamePlatform
989
     *
990
     * @return static
991
     *
992
     * @see http://schema.org/gamePlatform
993
     */
994
    public function gamePlatform($gamePlatform)
995
    {
996
        return $this->setProperty('gamePlatform', $gamePlatform);
997
    }
998
999
    /**
1000
     * The server on which  it is possible to play the game.
1001
     *
1002
     * @param \Spatie\SchemaOrg\Contracts\GameServerContract|\Spatie\SchemaOrg\Contracts\GameServerContract[] $gameServer
1003
     *
1004
     * @return static
1005
     *
1006
     * @see http://schema.org/gameServer
1007
     */
1008
    public function gameServer($gameServer)
1009
    {
1010
        return $this->setProperty('gameServer', $gameServer);
1011
    }
1012
1013
    /**
1014
     * Links to tips, tactics, etc.
1015
     *
1016
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $gameTip
1017
     *
1018
     * @return static
1019
     *
1020
     * @see http://schema.org/gameTip
1021
     */
1022
    public function gameTip($gameTip)
1023
    {
1024
        return $this->setProperty('gameTip', $gameTip);
1025
    }
1026
1027
    /**
1028
     * Genre of the creative work, broadcast channel or group.
1029
     *
1030
     * @param string|string[] $genre
1031
     *
1032
     * @return static
1033
     *
1034
     * @see http://schema.org/genre
1035
     */
1036
    public function genre($genre)
1037
    {
1038
        return $this->setProperty('genre', $genre);
1039
    }
1040
1041
    /**
1042
     * Indicates an item or CreativeWork that is part of this item, or
1043
     * CreativeWork (in some sense).
1044
     *
1045
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
1046
     *
1047
     * @return static
1048
     *
1049
     * @see http://schema.org/hasPart
1050
     */
1051
    public function hasPart($hasPart)
1052
    {
1053
        return $this->setProperty('hasPart', $hasPart);
1054
    }
1055
1056
    /**
1057
     * Headline of the article.
1058
     *
1059
     * @param string|string[] $headline
1060
     *
1061
     * @return static
1062
     *
1063
     * @see http://schema.org/headline
1064
     */
1065
    public function headline($headline)
1066
    {
1067
        return $this->setProperty('headline', $headline);
1068
    }
1069
1070
    /**
1071
     * The identifier property represents any kind of identifier for any kind of
1072
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
1073
     * dedicated properties for representing many of these, either as textual
1074
     * strings or as URL (URI) links. See [background
1075
     * notes](/docs/datamodel.html#identifierBg) for more details.
1076
     *
1077
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
1078
     *
1079
     * @return static
1080
     *
1081
     * @see http://schema.org/identifier
1082
     */
1083
    public function identifier($identifier)
1084
    {
1085
        return $this->setProperty('identifier', $identifier);
1086
    }
1087
1088
    /**
1089
     * An image of the item. This can be a [[URL]] or a fully described
1090
     * [[ImageObject]].
1091
     *
1092
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
1093
     *
1094
     * @return static
1095
     *
1096
     * @see http://schema.org/image
1097
     */
1098
    public function image($image)
1099
    {
1100
        return $this->setProperty('image', $image);
1101
    }
1102
1103
    /**
1104
     * The language of the content or performance or used in an action. Please
1105
     * use one of the language codes from the [IETF BCP 47
1106
     * standard](http://tools.ietf.org/html/bcp47). See also
1107
     * [[availableLanguage]].
1108
     *
1109
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
1110
     *
1111
     * @return static
1112
     *
1113
     * @see http://schema.org/inLanguage
1114
     */
1115
    public function inLanguage($inLanguage)
1116
    {
1117
        return $this->setProperty('inLanguage', $inLanguage);
1118
    }
1119
1120
    /**
1121
     * URL at which the app may be installed, if different from the URL of the
1122
     * item.
1123
     *
1124
     * @param string|string[] $installUrl
1125
     *
1126
     * @return static
1127
     *
1128
     * @see http://schema.org/installUrl
1129
     */
1130
    public function installUrl($installUrl)
1131
    {
1132
        return $this->setProperty('installUrl', $installUrl);
1133
    }
1134
1135
    /**
1136
     * The number of interactions for the CreativeWork using the WebSite or
1137
     * SoftwareApplication. The most specific child type of InteractionCounter
1138
     * should be used.
1139
     *
1140
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
1141
     *
1142
     * @return static
1143
     *
1144
     * @see http://schema.org/interactionStatistic
1145
     */
1146
    public function interactionStatistic($interactionStatistic)
1147
    {
1148
        return $this->setProperty('interactionStatistic', $interactionStatistic);
1149
    }
1150
1151
    /**
1152
     * The predominant mode of learning supported by the learning resource.
1153
     * Acceptable values are 'active', 'expositive', or 'mixed'.
1154
     *
1155
     * @param string|string[] $interactivityType
1156
     *
1157
     * @return static
1158
     *
1159
     * @see http://schema.org/interactivityType
1160
     */
1161
    public function interactivityType($interactivityType)
1162
    {
1163
        return $this->setProperty('interactivityType', $interactivityType);
1164
    }
1165
1166
    /**
1167
     * A flag to signal that the item, event, or place is accessible for free.
1168
     *
1169
     * @param bool|bool[] $isAccessibleForFree
1170
     *
1171
     * @return static
1172
     *
1173
     * @see http://schema.org/isAccessibleForFree
1174
     */
1175
    public function isAccessibleForFree($isAccessibleForFree)
1176
    {
1177
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
1178
    }
1179
1180
    /**
1181
     * A resource from which this work is derived or from which it is a
1182
     * modification or adaption.
1183
     *
1184
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
1185
     *
1186
     * @return static
1187
     *
1188
     * @see http://schema.org/isBasedOn
1189
     */
1190
    public function isBasedOn($isBasedOn)
1191
    {
1192
        return $this->setProperty('isBasedOn', $isBasedOn);
1193
    }
1194
1195
    /**
1196
     * A resource that was used in the creation of this resource. This term can
1197
     * be repeated for multiple sources. For example,
1198
     * http://example.com/great-multiplication-intro.html.
1199
     *
1200
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
1201
     *
1202
     * @return static
1203
     *
1204
     * @see http://schema.org/isBasedOnUrl
1205
     */
1206
    public function isBasedOnUrl($isBasedOnUrl)
1207
    {
1208
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
1209
    }
1210
1211
    /**
1212
     * Indicates whether this content is family friendly.
1213
     *
1214
     * @param bool|bool[] $isFamilyFriendly
1215
     *
1216
     * @return static
1217
     *
1218
     * @see http://schema.org/isFamilyFriendly
1219
     */
1220
    public function isFamilyFriendly($isFamilyFriendly)
1221
    {
1222
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
1223
    }
1224
1225
    /**
1226
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
1227
     * some sense), is part of.
1228
     *
1229
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
1230
     *
1231
     * @return static
1232
     *
1233
     * @see http://schema.org/isPartOf
1234
     */
1235
    public function isPartOf($isPartOf)
1236
    {
1237
        return $this->setProperty('isPartOf', $isPartOf);
1238
    }
1239
1240
    /**
1241
     * Keywords or tags used to describe this content. Multiple entries in a
1242
     * keywords list are typically delimited by commas.
1243
     *
1244
     * @param string|string[] $keywords
1245
     *
1246
     * @return static
1247
     *
1248
     * @see http://schema.org/keywords
1249
     */
1250
    public function keywords($keywords)
1251
    {
1252
        return $this->setProperty('keywords', $keywords);
1253
    }
1254
1255
    /**
1256
     * The predominant type or kind characterizing the learning resource. For
1257
     * example, 'presentation', 'handout'.
1258
     *
1259
     * @param string|string[] $learningResourceType
1260
     *
1261
     * @return static
1262
     *
1263
     * @see http://schema.org/learningResourceType
1264
     */
1265
    public function learningResourceType($learningResourceType)
1266
    {
1267
        return $this->setProperty('learningResourceType', $learningResourceType);
1268
    }
1269
1270
    /**
1271
     * A license document that applies to this content, typically indicated by
1272
     * URL.
1273
     *
1274
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
1275
     *
1276
     * @return static
1277
     *
1278
     * @see http://schema.org/license
1279
     */
1280
    public function license($license)
1281
    {
1282
        return $this->setProperty('license', $license);
1283
    }
1284
1285
    /**
1286
     * The location where the CreativeWork was created, which may not be the
1287
     * same as the location depicted in the CreativeWork.
1288
     *
1289
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
1290
     *
1291
     * @return static
1292
     *
1293
     * @see http://schema.org/locationCreated
1294
     */
1295
    public function locationCreated($locationCreated)
1296
    {
1297
        return $this->setProperty('locationCreated', $locationCreated);
1298
    }
1299
1300
    /**
1301
     * Indicates the primary entity described in some page or other
1302
     * CreativeWork.
1303
     *
1304
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1305
     *
1306
     * @return static
1307
     *
1308
     * @see http://schema.org/mainEntity
1309
     */
1310
    public function mainEntity($mainEntity)
1311
    {
1312
        return $this->setProperty('mainEntity', $mainEntity);
1313
    }
1314
1315
    /**
1316
     * Indicates a page (or other CreativeWork) for which this thing is the main
1317
     * entity being described. See [background
1318
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1319
     *
1320
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1321
     *
1322
     * @return static
1323
     *
1324
     * @see http://schema.org/mainEntityOfPage
1325
     */
1326
    public function mainEntityOfPage($mainEntityOfPage)
1327
    {
1328
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1329
    }
1330
1331
    /**
1332
     * A material that something is made from, e.g. leather, wool, cotton,
1333
     * paper.
1334
     *
1335
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1336
     *
1337
     * @return static
1338
     *
1339
     * @see http://schema.org/material
1340
     */
1341
    public function material($material)
1342
    {
1343
        return $this->setProperty('material', $material);
1344
    }
1345
1346
    /**
1347
     * Minimum memory requirements.
1348
     *
1349
     * @param string|string[] $memoryRequirements
1350
     *
1351
     * @return static
1352
     *
1353
     * @see http://schema.org/memoryRequirements
1354
     */
1355
    public function memoryRequirements($memoryRequirements)
1356
    {
1357
        return $this->setProperty('memoryRequirements', $memoryRequirements);
1358
    }
1359
1360
    /**
1361
     * Indicates that the CreativeWork contains a reference to, but is not
1362
     * necessarily about a concept.
1363
     *
1364
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1365
     *
1366
     * @return static
1367
     *
1368
     * @see http://schema.org/mentions
1369
     */
1370
    public function mentions($mentions)
1371
    {
1372
        return $this->setProperty('mentions', $mentions);
1373
    }
1374
1375
    /**
1376
     * The composer of the soundtrack.
1377
     *
1378
     * @param \Spatie\SchemaOrg\Contracts\MusicGroupContract|\Spatie\SchemaOrg\Contracts\MusicGroupContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $musicBy
1379
     *
1380
     * @return static
1381
     *
1382
     * @see http://schema.org/musicBy
1383
     */
1384
    public function musicBy($musicBy)
1385
    {
1386
        return $this->setProperty('musicBy', $musicBy);
1387
    }
1388
1389
    /**
1390
     * The name of the item.
1391
     *
1392
     * @param string|string[] $name
1393
     *
1394
     * @return static
1395
     *
1396
     * @see http://schema.org/name
1397
     */
1398
    public function name($name)
1399
    {
1400
        return $this->setProperty('name', $name);
1401
    }
1402
1403
    /**
1404
     * Indicate how many people can play this game (minimum, maximum, or range).
1405
     *
1406
     * @param \Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $numberOfPlayers
1407
     *
1408
     * @return static
1409
     *
1410
     * @see http://schema.org/numberOfPlayers
1411
     */
1412
    public function numberOfPlayers($numberOfPlayers)
1413
    {
1414
        return $this->setProperty('numberOfPlayers', $numberOfPlayers);
1415
    }
1416
1417
    /**
1418
     * An offer to provide this item&#x2014;for example, an offer to sell a
1419
     * product, rent the DVD of a movie, perform a service, or give away tickets
1420
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1421
     * offered, i.e. sell, lease, etc. This property can also be used to
1422
     * describe a [[Demand]]. While this property is listed as expected on a
1423
     * number of common types, it can be used in others. In that case, using a
1424
     * second type, such as Product or a subtype of Product, can clarify the
1425
     * nature of the offer.
1426
     *
1427
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1428
     *
1429
     * @return static
1430
     *
1431
     * @see http://schema.org/offers
1432
     */
1433
    public function offers($offers)
1434
    {
1435
        return $this->setProperty('offers', $offers);
1436
    }
1437
1438
    /**
1439
     * Operating systems supported (Windows 7, OSX 10.6, Android 1.6).
1440
     *
1441
     * @param string|string[] $operatingSystem
1442
     *
1443
     * @return static
1444
     *
1445
     * @see http://schema.org/operatingSystem
1446
     */
1447
    public function operatingSystem($operatingSystem)
1448
    {
1449
        return $this->setProperty('operatingSystem', $operatingSystem);
1450
    }
1451
1452
    /**
1453
     * Permission(s) required to run the app (for example, a mobile app may
1454
     * require full internet access or may run only on wifi).
1455
     *
1456
     * @param string|string[] $permissions
1457
     *
1458
     * @return static
1459
     *
1460
     * @see http://schema.org/permissions
1461
     */
1462
    public function permissions($permissions)
1463
    {
1464
        return $this->setProperty('permissions', $permissions);
1465
    }
1466
1467
    /**
1468
     * Indicates whether this game is multi-player, co-op or single-player.  The
1469
     * game can be marked as multi-player, co-op and single-player at the same
1470
     * time.
1471
     *
1472
     * @param \Spatie\SchemaOrg\Contracts\GamePlayModeContract|\Spatie\SchemaOrg\Contracts\GamePlayModeContract[] $playMode
1473
     *
1474
     * @return static
1475
     *
1476
     * @see http://schema.org/playMode
1477
     */
1478
    public function playMode($playMode)
1479
    {
1480
        return $this->setProperty('playMode', $playMode);
1481
    }
1482
1483
    /**
1484
     * The position of an item in a series or sequence of items.
1485
     *
1486
     * @param int|int[]|string|string[] $position
1487
     *
1488
     * @return static
1489
     *
1490
     * @see http://schema.org/position
1491
     */
1492
    public function position($position)
1493
    {
1494
        return $this->setProperty('position', $position);
1495
    }
1496
1497
    /**
1498
     * Indicates a potential Action, which describes an idealized action in
1499
     * which this thing would play an 'object' role.
1500
     *
1501
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1502
     *
1503
     * @return static
1504
     *
1505
     * @see http://schema.org/potentialAction
1506
     */
1507
    public function potentialAction($potentialAction)
1508
    {
1509
        return $this->setProperty('potentialAction', $potentialAction);
1510
    }
1511
1512
    /**
1513
     * Processor architecture required to run the application (e.g. IA64).
1514
     *
1515
     * @param string|string[] $processorRequirements
1516
     *
1517
     * @return static
1518
     *
1519
     * @see http://schema.org/processorRequirements
1520
     */
1521
    public function processorRequirements($processorRequirements)
1522
    {
1523
        return $this->setProperty('processorRequirements', $processorRequirements);
1524
    }
1525
1526
    /**
1527
     * The person or organization who produced the work (e.g. music album,
1528
     * movie, tv/radio series etc.).
1529
     *
1530
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1531
     *
1532
     * @return static
1533
     *
1534
     * @see http://schema.org/producer
1535
     */
1536
    public function producer($producer)
1537
    {
1538
        return $this->setProperty('producer', $producer);
1539
    }
1540
1541
    /**
1542
     * The service provider, service operator, or service performer; the goods
1543
     * producer. Another party (a seller) may offer those services or goods on
1544
     * behalf of the provider. A provider may also serve as the seller.
1545
     *
1546
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1547
     *
1548
     * @return static
1549
     *
1550
     * @see http://schema.org/provider
1551
     */
1552
    public function provider($provider)
1553
    {
1554
        return $this->setProperty('provider', $provider);
1555
    }
1556
1557
    /**
1558
     * A publication event associated with the item.
1559
     *
1560
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1561
     *
1562
     * @return static
1563
     *
1564
     * @see http://schema.org/publication
1565
     */
1566
    public function publication($publication)
1567
    {
1568
        return $this->setProperty('publication', $publication);
1569
    }
1570
1571
    /**
1572
     * The publisher of the creative work.
1573
     *
1574
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1575
     *
1576
     * @return static
1577
     *
1578
     * @see http://schema.org/publisher
1579
     */
1580
    public function publisher($publisher)
1581
    {
1582
        return $this->setProperty('publisher', $publisher);
1583
    }
1584
1585
    /**
1586
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1587
     * document describing the editorial principles of an [[Organization]] (or
1588
     * individual e.g. a [[Person]] writing a blog) that relate to their
1589
     * activities as a publisher, e.g. ethics or diversity policies. When
1590
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1591
     * those of the party primarily responsible for the creation of the
1592
     * [[CreativeWork]].
1593
     * 
1594
     * While such policies are most typically expressed in natural language,
1595
     * sometimes related information (e.g. indicating a [[funder]]) can be
1596
     * expressed using schema.org terminology.
1597
     *
1598
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1599
     *
1600
     * @return static
1601
     *
1602
     * @see http://schema.org/publishingPrinciples
1603
     */
1604
    public function publishingPrinciples($publishingPrinciples)
1605
    {
1606
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1607
    }
1608
1609
    /**
1610
     * The task that a player-controlled character, or group of characters may
1611
     * complete in order to gain a reward.
1612
     *
1613
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $quest
1614
     *
1615
     * @return static
1616
     *
1617
     * @see http://schema.org/quest
1618
     */
1619
    public function quest($quest)
1620
    {
1621
        return $this->setProperty('quest', $quest);
1622
    }
1623
1624
    /**
1625
     * The Event where the CreativeWork was recorded. The CreativeWork may
1626
     * capture all or part of the event.
1627
     *
1628
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1629
     *
1630
     * @return static
1631
     *
1632
     * @see http://schema.org/recordedAt
1633
     */
1634
    public function recordedAt($recordedAt)
1635
    {
1636
        return $this->setProperty('recordedAt', $recordedAt);
1637
    }
1638
1639
    /**
1640
     * Description of what changed in this version.
1641
     *
1642
     * @param string|string[] $releaseNotes
1643
     *
1644
     * @return static
1645
     *
1646
     * @see http://schema.org/releaseNotes
1647
     */
1648
    public function releaseNotes($releaseNotes)
1649
    {
1650
        return $this->setProperty('releaseNotes', $releaseNotes);
1651
    }
1652
1653
    /**
1654
     * The place and time the release was issued, expressed as a
1655
     * PublicationEvent.
1656
     *
1657
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1658
     *
1659
     * @return static
1660
     *
1661
     * @see http://schema.org/releasedEvent
1662
     */
1663
    public function releasedEvent($releasedEvent)
1664
    {
1665
        return $this->setProperty('releasedEvent', $releasedEvent);
1666
    }
1667
1668
    /**
1669
     * Component dependency requirements for application. This includes runtime
1670
     * environments and shared libraries that are not included in the
1671
     * application distribution package, but required to run the application
1672
     * (Examples: DirectX, Java or .NET runtime).
1673
     *
1674
     * @param string|string[] $requirements
1675
     *
1676
     * @return static
1677
     *
1678
     * @see http://schema.org/requirements
1679
     */
1680
    public function requirements($requirements)
1681
    {
1682
        return $this->setProperty('requirements', $requirements);
1683
    }
1684
1685
    /**
1686
     * A review of the item.
1687
     *
1688
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1689
     *
1690
     * @return static
1691
     *
1692
     * @see http://schema.org/review
1693
     */
1694
    public function review($review)
1695
    {
1696
        return $this->setProperty('review', $review);
1697
    }
1698
1699
    /**
1700
     * Review of the item.
1701
     *
1702
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1703
     *
1704
     * @return static
1705
     *
1706
     * @see http://schema.org/reviews
1707
     */
1708
    public function reviews($reviews)
1709
    {
1710
        return $this->setProperty('reviews', $reviews);
1711
    }
1712
1713
    /**
1714
     * URL of a reference Web page that unambiguously indicates the item's
1715
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1716
     * official website.
1717
     *
1718
     * @param string|string[] $sameAs
1719
     *
1720
     * @return static
1721
     *
1722
     * @see http://schema.org/sameAs
1723
     */
1724
    public function sameAs($sameAs)
1725
    {
1726
        return $this->setProperty('sameAs', $sameAs);
1727
    }
1728
1729
    /**
1730
     * Indicates (by URL or string) a particular version of a schema used in
1731
     * some CreativeWork. For example, a document could declare a schemaVersion
1732
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1733
     * of schema version was required by some application.
1734
     *
1735
     * @param string|string[] $schemaVersion
1736
     *
1737
     * @return static
1738
     *
1739
     * @see http://schema.org/schemaVersion
1740
     */
1741
    public function schemaVersion($schemaVersion)
1742
    {
1743
        return $this->setProperty('schemaVersion', $schemaVersion);
1744
    }
1745
1746
    /**
1747
     * A link to a screenshot image of the app.
1748
     *
1749
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $screenshot
1750
     *
1751
     * @return static
1752
     *
1753
     * @see http://schema.org/screenshot
1754
     */
1755
    public function screenshot($screenshot)
1756
    {
1757
        return $this->setProperty('screenshot', $screenshot);
1758
    }
1759
1760
    /**
1761
     * Additional content for a software application.
1762
     *
1763
     * @param \Spatie\SchemaOrg\Contracts\SoftwareApplicationContract|\Spatie\SchemaOrg\Contracts\SoftwareApplicationContract[] $softwareAddOn
1764
     *
1765
     * @return static
1766
     *
1767
     * @see http://schema.org/softwareAddOn
1768
     */
1769
    public function softwareAddOn($softwareAddOn)
1770
    {
1771
        return $this->setProperty('softwareAddOn', $softwareAddOn);
1772
    }
1773
1774
    /**
1775
     * Software application help.
1776
     *
1777
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $softwareHelp
1778
     *
1779
     * @return static
1780
     *
1781
     * @see http://schema.org/softwareHelp
1782
     */
1783
    public function softwareHelp($softwareHelp)
1784
    {
1785
        return $this->setProperty('softwareHelp', $softwareHelp);
1786
    }
1787
1788
    /**
1789
     * Component dependency requirements for application. This includes runtime
1790
     * environments and shared libraries that are not included in the
1791
     * application distribution package, but required to run the application
1792
     * (Examples: DirectX, Java or .NET runtime).
1793
     *
1794
     * @param string|string[] $softwareRequirements
1795
     *
1796
     * @return static
1797
     *
1798
     * @see http://schema.org/softwareRequirements
1799
     */
1800
    public function softwareRequirements($softwareRequirements)
1801
    {
1802
        return $this->setProperty('softwareRequirements', $softwareRequirements);
1803
    }
1804
1805
    /**
1806
     * Version of the software instance.
1807
     *
1808
     * @param string|string[] $softwareVersion
1809
     *
1810
     * @return static
1811
     *
1812
     * @see http://schema.org/softwareVersion
1813
     */
1814
    public function softwareVersion($softwareVersion)
1815
    {
1816
        return $this->setProperty('softwareVersion', $softwareVersion);
1817
    }
1818
1819
    /**
1820
     * The Organization on whose behalf the creator was working.
1821
     *
1822
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1823
     *
1824
     * @return static
1825
     *
1826
     * @see http://schema.org/sourceOrganization
1827
     */
1828
    public function sourceOrganization($sourceOrganization)
1829
    {
1830
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1831
    }
1832
1833
    /**
1834
     * The "spatial" property can be used in cases when more specific properties
1835
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1836
     * not known to be appropriate.
1837
     *
1838
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1839
     *
1840
     * @return static
1841
     *
1842
     * @see http://schema.org/spatial
1843
     */
1844
    public function spatial($spatial)
1845
    {
1846
        return $this->setProperty('spatial', $spatial);
1847
    }
1848
1849
    /**
1850
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1851
     * the focus of the content. It is a subproperty of
1852
     *       contentLocation intended primarily for more technical and detailed
1853
     * materials. For example with a Dataset, it indicates
1854
     *       areas that the dataset describes: a dataset of New York weather
1855
     * would have spatialCoverage which was the place: the state of New York.
1856
     *
1857
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1858
     *
1859
     * @return static
1860
     *
1861
     * @see http://schema.org/spatialCoverage
1862
     */
1863
    public function spatialCoverage($spatialCoverage)
1864
    {
1865
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1866
    }
1867
1868
    /**
1869
     * A person or organization that supports a thing through a pledge, promise,
1870
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1871
     * corporate sponsor of an event.
1872
     *
1873
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1874
     *
1875
     * @return static
1876
     *
1877
     * @see http://schema.org/sponsor
1878
     */
1879
    public function sponsor($sponsor)
1880
    {
1881
        return $this->setProperty('sponsor', $sponsor);
1882
    }
1883
1884
    /**
1885
     * Storage requirements (free space required).
1886
     *
1887
     * @param string|string[] $storageRequirements
1888
     *
1889
     * @return static
1890
     *
1891
     * @see http://schema.org/storageRequirements
1892
     */
1893
    public function storageRequirements($storageRequirements)
1894
    {
1895
        return $this->setProperty('storageRequirements', $storageRequirements);
1896
    }
1897
1898
    /**
1899
     * A CreativeWork or Event about this Thing.
1900
     *
1901
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1902
     *
1903
     * @return static
1904
     *
1905
     * @see http://schema.org/subjectOf
1906
     */
1907
    public function subjectOf($subjectOf)
1908
    {
1909
        return $this->setProperty('subjectOf', $subjectOf);
1910
    }
1911
1912
    /**
1913
     * Supporting data for a SoftwareApplication.
1914
     *
1915
     * @param \Spatie\SchemaOrg\Contracts\DataFeedContract|\Spatie\SchemaOrg\Contracts\DataFeedContract[] $supportingData
1916
     *
1917
     * @return static
1918
     *
1919
     * @see http://schema.org/supportingData
1920
     */
1921
    public function supportingData($supportingData)
1922
    {
1923
        return $this->setProperty('supportingData', $supportingData);
1924
    }
1925
1926
    /**
1927
     * The "temporal" property can be used in cases where more specific
1928
     * properties
1929
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1930
     * [[datePublished]]) are not known to be appropriate.
1931
     *
1932
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1933
     *
1934
     * @return static
1935
     *
1936
     * @see http://schema.org/temporal
1937
     */
1938
    public function temporal($temporal)
1939
    {
1940
        return $this->setProperty('temporal', $temporal);
1941
    }
1942
1943
    /**
1944
     * The temporalCoverage of a CreativeWork indicates the period that the
1945
     * content applies to, i.e. that it describes, either as a DateTime or as a
1946
     * textual string indicating a time period in [ISO 8601 time interval
1947
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1948
     *       the case of a Dataset it will typically indicate the relevant time
1949
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1950
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1951
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1952
     * temporalCoverage in broader terms - textually or via well-known URL.
1953
     *       Written works such as books may sometimes have precise temporal
1954
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1955
     * interval format format via "1939/1945".
1956
     * 
1957
     * Open-ended date ranges can be written with ".." in place of the end date.
1958
     * For example, "2015-11/.." indicates a range beginning in November 2015
1959
     * and with no specified final date. This is tentative and might be updated
1960
     * in future when ISO 8601 is officially updated.
1961
     *
1962
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1963
     *
1964
     * @return static
1965
     *
1966
     * @see http://schema.org/temporalCoverage
1967
     */
1968
    public function temporalCoverage($temporalCoverage)
1969
    {
1970
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1971
    }
1972
1973
    /**
1974
     * The textual content of this CreativeWork.
1975
     *
1976
     * @param string|string[] $text
1977
     *
1978
     * @return static
1979
     *
1980
     * @see http://schema.org/text
1981
     */
1982
    public function text($text)
1983
    {
1984
        return $this->setProperty('text', $text);
1985
    }
1986
1987
    /**
1988
     * A thumbnail image relevant to the Thing.
1989
     *
1990
     * @param string|string[] $thumbnailUrl
1991
     *
1992
     * @return static
1993
     *
1994
     * @see http://schema.org/thumbnailUrl
1995
     */
1996
    public function thumbnailUrl($thumbnailUrl)
1997
    {
1998
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1999
    }
2000
2001
    /**
2002
     * Approximate or typical time it takes to work with or through this
2003
     * learning resource for the typical intended target audience, e.g. 'PT30M',
2004
     * 'PT1H25M'.
2005
     *
2006
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
2007
     *
2008
     * @return static
2009
     *
2010
     * @see http://schema.org/timeRequired
2011
     */
2012
    public function timeRequired($timeRequired)
2013
    {
2014
        return $this->setProperty('timeRequired', $timeRequired);
2015
    }
2016
2017
    /**
2018
     * The trailer of a movie or tv/radio series, season, episode, etc.
2019
     *
2020
     * @param \Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $trailer
2021
     *
2022
     * @return static
2023
     *
2024
     * @see http://schema.org/trailer
2025
     */
2026
    public function trailer($trailer)
2027
    {
2028
        return $this->setProperty('trailer', $trailer);
2029
    }
2030
2031
    /**
2032
     * Organization or person who adapts a creative work to different languages,
2033
     * regional differences and technical requirements of a target market, or
2034
     * that translates during some event.
2035
     *
2036
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
2037
     *
2038
     * @return static
2039
     *
2040
     * @see http://schema.org/translator
2041
     */
2042
    public function translator($translator)
2043
    {
2044
        return $this->setProperty('translator', $translator);
2045
    }
2046
2047
    /**
2048
     * The typical expected age range, e.g. '7-9', '11-'.
2049
     *
2050
     * @param string|string[] $typicalAgeRange
2051
     *
2052
     * @return static
2053
     *
2054
     * @see http://schema.org/typicalAgeRange
2055
     */
2056
    public function typicalAgeRange($typicalAgeRange)
2057
    {
2058
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
2059
    }
2060
2061
    /**
2062
     * URL of the item.
2063
     *
2064
     * @param string|string[] $url
2065
     *
2066
     * @return static
2067
     *
2068
     * @see http://schema.org/url
2069
     */
2070
    public function url($url)
2071
    {
2072
        return $this->setProperty('url', $url);
2073
    }
2074
2075
    /**
2076
     * The version of the CreativeWork embodied by a specified resource.
2077
     *
2078
     * @param float|float[]|int|int[]|string|string[] $version
2079
     *
2080
     * @return static
2081
     *
2082
     * @see http://schema.org/version
2083
     */
2084
    public function version($version)
2085
    {
2086
        return $this->setProperty('version', $version);
2087
    }
2088
2089
    /**
2090
     * An embedded video object.
2091
     *
2092
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
2093
     *
2094
     * @return static
2095
     *
2096
     * @see http://schema.org/video
2097
     */
2098
    public function video($video)
2099
    {
2100
        return $this->setProperty('video', $video);
2101
    }
2102
2103
    /**
2104
     * Example/instance/realization/derivation of the concept of this creative
2105
     * work. eg. The paperback edition, first edition, or eBook.
2106
     *
2107
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
2108
     *
2109
     * @return static
2110
     *
2111
     * @see http://schema.org/workExample
2112
     */
2113
    public function workExample($workExample)
2114
    {
2115
        return $this->setProperty('workExample', $workExample);
2116
    }
2117
2118
}
2119