API Docs for: 1.3.12
Show:

File: src/main/js/cass/org.schema.js

/*-
 * --BEGIN_LICENSE--
 * Competency and Skills System
 * -----
 * Copyright (C) 2015 - 2020 Eduworks Corporation and other contributing parties.
 * -----
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * --END_LICENSE--
 */
/**
 *  Schema.org/Thing
 *  The most generic type of item.
 * 
 *  @author schema.org
 *  @class Thing
 *  @module org.schema
 */
var Thing = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    EcRemoteLinkedData.call(this, "http://schema.org/", "Thing");
};
Thing = stjs.extend(Thing, EcRemoteLinkedData, [], function(constructor, prototype) {
    /**
     *  Schema.org/name
     *  The name of the item.
     * 
     *  @property name
     *  @type Text
     */
    prototype.name = null;
    /**
     *  Schema.org/identifier
     *  The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details.
     * 
     *  @property identifier
     *  @type schema, URL | schema,Text | schema,PropertyValue
     */
    prototype.identifier = null;
    /**
     *  Schema.org/url
     *  URL of the item.
     * 
     *  @property url
     *  @type URL
     */
    prototype.url = null;
    /**
     *  Schema.org/image
     *  An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].
     * 
     *  @property image
     *  @type schema, URL | schema,ImageObject
     */
    prototype.image = null;
    /**
     *  Schema.org/description
     *  A description of the item.
     * 
     *  @property description
     *  @type Text
     */
    prototype.description = null;
    /**
     *  Schema.org/disambiguatingDescription
     *  A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.
     * 
     *  @property disambiguatingDescription
     *  @type Text
     */
    prototype.disambiguatingDescription = null;
    /**
     *  Schema.org/alternateName
     *  An alias for the item.
     * 
     *  @property alternateName
     *  @type Text
     */
    prototype.alternateName = null;
    /**
     *  Schema.org/sameAs
     *  URL of a reference Web page that unambiguously indicates the item's identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or official website.
     * 
     *  @property sameAs
     *  @type URL
     */
    prototype.sameAs = null;
    /**
     *  Schema.org/additionalType
     *  An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the 'typeof' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.
     * 
     *  @property additionalType
     *  @type URL
     */
    prototype.additionalType = null;
    /**
     *  Schema.org/potentialAction
     *  Indicates a potential Action, which describes an idealized action in which this thing would play an 'object' role.
     * 
     *  @property potentialAction
     *  @type Action
     */
    prototype.potentialAction = null;
    /**
     *  Schema.org/mainEntityOfPage
     *  Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.
     * 
     *  @property mainEntityOfPage
     *  @type schema, URL | schema,CreativeWork
     */
    prototype.mainEntityOfPage = null;
    /**
     *  Returns the name of the thing
     * 
     *  @return {String} name of Thing
     *  @memberOf Thing
     *  @method getName
     */
    prototype.getName = function() {
        var n = this.name;
        return Thing.getDisplayStringFrom(n);
    };
    /**
     *  Method to set Thing name
     * 
     *  @param {String} name
     *                  Name to set for this Thing
     *  @memberOf Thing
     *  @method setName
     */
    prototype.setName = function(name) {
        if (this.name != null && EcObject.isObject(this.name) && (this.name).hasOwnProperty("@value")) {
            var obj = (this)["name"];
            (obj)["@value"] = name;
            (this)["name"] = obj;
        } else {
            this.name = name;
        }
    };
    /**
     *  Returns the description of the thing
     * 
     *  @return {String} description of Thing
     *  @memberOf Thing
     *  @method getDescription
     */
    prototype.getDescription = function() {
        var n = this.description;
        return Thing.getDisplayStringFrom(n);
    };
    constructor.getDisplayStringFrom = function(n) {
        if (n != null && EcArray.isArray(n)) {
            if ((n).length > 0) 
                n = (n)[0];
        }
        if (n != null && EcObject.isObject(n) && (n).hasOwnProperty("@value")) {
            return (n)["@value"];
        }
        return n;
    };
    /**
     *  Method to set Thing description
     * 
     *  @param {String} description
     *                  Description to set for its Thing
     *  @memberOf Thing
     *  @method setDescription
     */
    prototype.setDescription = function(description) {
        if (this.description != null && EcObject.isObject(this.description) && (this.description).hasOwnProperty("@value")) {
            var obj = (this)["description"];
            (obj)["@value"] = description;
            (this)["description"] = obj;
        } else {
            this.description = description;
        }
    };
}, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SchemaEvent
 *  An event happening at a certain time and location, such as a concert, lecture, or festival. Ticketing information may be added via the [[offers]] property. Repeated events may be structured as separate SchemaEvent objects.
 * 
 *  @author schema.org
 *  @class SchemaEvent
 *  @module org.schema
 *  @extends Thing
 */
var SchemaEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Thing.call(this);
    this.context = "http://schema.org/";
    this.type = "SchemaEvent";
};
SchemaEvent = stjs.extend(SchemaEvent, Thing, [], function(constructor, prototype) {
    /**
     *  Schema.org/about
     *  The subject matter of the content.
     * 
     *  @property about
     *  @type Thing
     */
    prototype.about = null;
    /**
     *  Schema.org/funder
     *  A person or organization that supports (sponsors) something through some kind of financial contribution.
     * 
     *  @property funder
     *  @type Person
     */
    prototype.funder = null;
    /**
     *  Schema.org/workFeatured
     *  A work featured in some event, e.g. exhibited in an ExhibitionEvent.
     *  Specific subproperties are available for workPerformed (e.g. a play), or a workPresented (a Movie at a ScreeningEvent).
     * 
     *  @property workFeatured
     *  @type CreativeWork
     */
    prototype.workFeatured = null;
    /**
     *  Schema.org/audience
     *  An intended audience, i.e. a group for whom something was created.
     * 
     *  @property audience
     *  @type Audience
     */
    prototype.audience = null;
    /**
     *  Schema.org/remainingAttendeeCapacity
     *  The number of attendee places for an event that remain unallocated.
     * 
     *  @property remainingAttendeeCapacity
     *  @type Integer
     */
    prototype.remainingAttendeeCapacity = null;
    /**
     *  Schema.org/actor
     *  An actor, e.g. in tv, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property actor
     *  @type Person
     */
    prototype.actor = null;
    /**
     *  Schema.org/performers
     *  The main performer or performers of the event—for example, a presenter, musician, or actor.
     * 
     *  @property performers
     *  @type Organization
     */
    prototype.performers = null;
    /**
     *  Schema.org/endDate
     *  The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).
     * 
     *  @property endDate
     *  @type DateTime
     */
    prototype.endDate = null;
    /**
     *  Schema.org/doorTime
     *  The time admission will commence.
     * 
     *  @property doorTime
     *  @type DateTime
     */
    prototype.doorTime = null;
    /**
     *  Schema.org/contributor
     *  A secondary contributor to the CreativeWork or SchemaEvent.
     * 
     *  @property contributor
     *  @type Organization
     */
    prototype.contributor = null;
    /**
     *  Schema.org/maximumAttendeeCapacity
     *  The total number of individuals that may attend an event or venue.
     * 
     *  @property maximumAttendeeCapacity
     *  @type Integer
     */
    prototype.maximumAttendeeCapacity = null;
    /**
     *  Schema.org/typicalAgeRange
     *  The typical expected age range, e.g. '7-9', '11-'.
     * 
     *  @property typicalAgeRange
     *  @type Text
     */
    prototype.typicalAgeRange = null;
    /**
     *  Schema.org/organizer
     *  An organizer of an SchemaEvent.
     * 
     *  @property organizer
     *  @type Person
     */
    prototype.organizer = null;
    /**
     *  Schema.org/attendees
     *  A person attending the event.
     * 
     *  @property attendees
     *  @type Person
     */
    prototype.attendees = null;
    /**
     *  Schema.org/aggregateRating
     *  The overall rating, based on a collection of reviews or ratings, of the item.
     * 
     *  @property aggregateRating
     *  @type AggregateRating
     */
    prototype.aggregateRating = null;
    /**
     *  Schema.org/subEvent
     *  An SchemaEvent that is part of this event. For example, a conference event includes many presentations, each of which is a subEvent of the conference.
     * 
     *  @property subEvent
     *  @type SchemaEvent
     */
    prototype.subEvent = null;
    /**
     *  Schema.org/subEvents
     *  Events that are a part of this event. For example, a conference event includes many presentations, each subEvents of the conference.
     * 
     *  @property subEvents
     *  @type SchemaEvent
     */
    prototype.subEvents = null;
    /**
     *  Schema.org/offers
     *  An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event.
     * 
     *  @property offers
     *  @type Offer
     */
    prototype.offers = null;
    /**
     *  Schema.org/attendee
     *  A person or organization attending the event.
     * 
     *  @property attendee
     *  @type Organization
     */
    prototype.attendee = null;
    /**
     *  Schema.org/workPerformed
     *  A work performed in some event, for example a play performed in a TheaterEvent.
     * 
     *  @property workPerformed
     *  @type CreativeWork
     */
    prototype.workPerformed = null;
    /**
     *  Schema.org/eventStatus
     *  An eventStatus of an event represents its status; particularly useful when an event is cancelled or rescheduled.
     * 
     *  @property eventStatus
     *  @type EventStatusType
     */
    prototype.eventStatus = null;
    /**
     *  Schema.org/startDate
     *  The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).
     * 
     *  @property startDate
     *  @type Date
     */
    prototype.startDate = null;
    /**
     *  Schema.org/director
     *  A director of e.g. tv, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property director
     *  @type Person
     */
    prototype.director = null;
    /**
     *  Schema.org/superEvent
     *  An event that this event is a part of. For example, a collection of individual music performances might each have a music festival as their superEvent.
     * 
     *  @property superEvent
     *  @type SchemaEvent
     */
    prototype.superEvent = null;
    /**
     *  Schema.org/duration
     *  The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).
     * 
     *  @property duration
     *  @type Duration
     */
    prototype.duration = null;
    /**
     *  Schema.org/translator
     *  Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.
     * 
     *  @property translator
     *  @type Person
     */
    prototype.translator = null;
    /**
     *  Schema.org/inLanguage
     *  The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].
     * 
     *  @property inLanguage
     *  @type Language
     */
    prototype.inLanguage = null;
    /**
     *  Schema.org/previousStartDate
     *  Used in conjunction with eventStatus for rescheduled or cancelled events. This property contains the previously scheduled start date. For rescheduled events, the startDate property should be used for the newly scheduled start date. In the (rare) case of an event that has been postponed and rescheduled multiple times, this field may be repeated.
     * 
     *  @property previousStartDate
     *  @type Date
     */
    prototype.previousStartDate = null;
    /**
     *  Schema.org/review
     *  A review of the item.
     * 
     *  @property review
     *  @type Review
     */
    prototype.review = null;
    /**
     *  Schema.org/sponsor
     *  A person or organization that supports a thing through a pledge, promise, or financial contribution. e.g. a sponsor of a Medical Study or a corporate sponsor of an event.
     * 
     *  @property sponsor
     *  @type Organization
     */
    prototype.sponsor = null;
    /**
     *  Schema.org/location
     *  The location of for example where the event is happening, an organization is located, or where an action takes place.
     * 
     *  @property location
     *  @type PostalAddress
     */
    prototype.location = null;
    /**
     *  Schema.org/recordedIn
     *  The CreativeWork that captured all or part of this SchemaEvent.
     * 
     *  @property recordedIn
     *  @type CreativeWork
     */
    prototype.recordedIn = null;
    /**
     *  Schema.org/composer
     *  The person or organization who wrote a composition, or who is the composer of a work performed at some event.
     * 
     *  @property composer
     *  @type Organization
     */
    prototype.composer = null;
    /**
     *  Schema.org/isAccessibleForFree
     *  A flag to signal that the publication is accessible for free.
     * 
     *  @property isAccessibleForFree
     *  @type Boolean
     */
    prototype.isAccessibleForFree = null;
    /**
     *  Schema.org/performer
     *  A performer at the event—for example, a presenter, musician, musical group or actor.
     * 
     *  @property performer
     *  @type Person
     */
    prototype.performer = null;
}, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Place
 *  Entities that have a somewhat fixed, physical extension.
 * 
 *  @author schema.org
 *  @class Place
 *  @module org.schema
 *  @extends Thing
 */
var Place = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Thing.call(this);
    this.context = "http://schema.org/";
    this.type = "Place";
};
Place = stjs.extend(Place, Thing, [], function(constructor, prototype) {
    /**
     *  Schema.org/photo
     *  A photograph of this place.
     * 
     *  @property photo
     *  @type ImageObject
     */
    prototype.photo = null;
    /**
     *  Schema.org/address
     *  Physical address of the item.
     * 
     *  @property address
     *  @type PostalAddress
     */
    prototype.address = null;
    /**
     *  Schema.org/openingHoursSpecification
     *  The opening hours of a certain place.
     * 
     *  @property openingHoursSpecification
     *  @type OpeningHoursSpecification
     */
    prototype.openingHoursSpecification = null;
    /**
     *  Schema.org/containedInPlace
     *  The basic containment relation between a place and one that contains it.
     * 
     *  @property containedInPlace
     *  @type Place
     */
    prototype.containedInPlace = null;
    /**
     *  Schema.org/smokingAllowed
     *  Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.
     * 
     *  @property smokingAllowed
     *  @type Boolean
     */
    prototype.smokingAllowed = null;
    /**
     *  Schema.org/globalLocationNumber
     *  The [Global Location Number](http://www.gs1.org/gln) (GLN, sometimes also referred to as International Location Number or ILN) of the respective organization, person, or place. The GLN is a 13-digit number used to identify parties and physical locations.
     * 
     *  @property globalLocationNumber
     *  @type Text
     */
    prototype.globalLocationNumber = null;
    /**
     *  Schema.org/maximumAttendeeCapacity
     *  The total number of individuals that may attend an event or venue.
     * 
     *  @property maximumAttendeeCapacity
     *  @type Integer
     */
    prototype.maximumAttendeeCapacity = null;
    /**
     *  Schema.org/reviews
     *  Review of the item.
     * 
     *  @property reviews
     *  @type Review
     */
    prototype.reviews = null;
    /**
     *  Schema.org/aggregateRating
     *  The overall rating, based on a collection of reviews or ratings, of the item.
     * 
     *  @property aggregateRating
     *  @type AggregateRating
     */
    prototype.aggregateRating = null;
    /**
     *  Schema.org/photos
     *  Photographs of this place.
     * 
     *  @property photos
     *  @type Photograph
     */
    prototype.photos = null;
    /**
     *  Schema.org/map
     *  A URL to a map of the place.
     * 
     *  @property map
     *  @type URL
     */
    prototype.map = null;
    /**
     *  Schema.org/branchCode
     *  A short textual code (also called "store code") that uniquely identifies a place of business. The code is typically assigned by the parentOrganization and used in structured URLs.\n\nFor example, in the URL http://www.starbucks.co.uk/store-locator/etc/detail/3047 the code "3047" is a branchCode for a particular branch.
     * 
     *  @property branchCode
     *  @type Text
     */
    prototype.branchCode = null;
    /**
     *  Schema.org/hasMap
     *  A URL to a map of the place.
     * 
     *  @property hasMap
     *  @type Object
     */
    prototype.hasMap = null;
    /**
     *  Schema.org/additionalProperty
     *  A property-value pair representing an additional characteristics of the entitity, e.g. a product feature or another characteristic for which there is no matching property in schema.org.\n\nNote: Publishers should be aware that applications designed to use specific schema.org properties (e.g. schema:width, schema:color, schema:gtin13, ...) will typically expect such data to be provided using those properties, rather than using the generic property/value mechanism.
     * 
     *  @property additionalProperty
     *  @type PropertyValue
     */
    prototype.additionalProperty = null;
    /**
     *  Schema.org/events
     *  Upcoming or past events associated with this place or organization.
     * 
     *  @property events
     *  @type SchemaEvent
     */
    prototype.events = null;
    /**
     *  Schema.org/specialOpeningHoursSpecification
     *  The special opening hours of a certain place.\n\nUse this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]].
     * 
     *  @property specialOpeningHoursSpecification
     *  @type OpeningHoursSpecification
     */
    prototype.specialOpeningHoursSpecification = null;
    /**
     *  Schema.org/amenityFeature
     *  An amenity feature (e.g. a characteristic or service) of the Accommodation. This generic property does not make a statement about whether the feature is included in an offer for the main accommodation or available at extra costs.
     * 
     *  @property amenityFeature
     *  @type LocationFeatureSpecification
     */
    prototype.amenityFeature = null;
    /**
     *  Schema.org/logo
     *  An associated logo.
     * 
     *  @property logo
     *  @type ImageObject
     */
    prototype.logo = null;
    /**
     *  Schema.org/telephone
     *  The telephone number.
     * 
     *  @property telephone
     *  @type Text
     */
    prototype.telephone = null;
    /**
     *  Schema.org/geo
     *  The geo coordinates of the place.
     * 
     *  @property geo
     *  @type GeoCoordinates
     */
    prototype.geo = null;
    /**
     *  Schema.org/review
     *  A review of the item.
     * 
     *  @property review
     *  @type Review
     */
    prototype.review = null;
    /**
     *  Schema.org/event
     *  Upcoming or past event associated with this place, organization, or action.
     * 
     *  @property event
     *  @type SchemaEvent
     */
    prototype.event = null;
    /**
     *  Schema.org/containsPlace
     *  The basic containment relation between a place and another that it contains.
     * 
     *  @property containsPlace
     *  @type Place
     */
    prototype.containsPlace = null;
    /**
     *  Schema.org/isicV4
     *  The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.
     * 
     *  @property isicV4
     *  @type Text
     */
    prototype.isicV4 = null;
    /**
     *  Schema.org/maps
     *  A URL to a map of the place.
     * 
     *  @property maps
     *  @type URL
     */
    prototype.maps = null;
    /**
     *  Schema.org/faxNumber
     *  The fax number.
     * 
     *  @property faxNumber
     *  @type Text
     */
    prototype.faxNumber = null;
    /**
     *  Schema.org/containedIn
     *  The basic containment relation between a place and one that contains it.
     * 
     *  @property containedIn
     *  @type Place
     */
    prototype.containedIn = null;
}, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Person
 *  A person (alive, dead, undead, or fictional).
 * 
 *  @author schema.org
 *  @class Person
 *  @module org.schema
 *  @extends Thing
 */
var Person = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Thing.call(this);
    this.context = "http://schema.org/";
    this.type = "Person";
};
Person = stjs.extend(Person, Thing, [], function(constructor, prototype) {
    /**
     *  Schema.org/address
     *  Physical address of the item.
     * 
     *  @property address
     *  @type PostalAddress
     */
    prototype.address = null;
    /**
     *  Schema.org/spouse
     *  The person's spouse.
     * 
     *  @property spouse
     *  @type Person
     */
    prototype.spouse = null;
    /**
     *  Schema.org/funder
     *  A person or organization that supports (sponsors) something through some kind of financial contribution.
     * 
     *  @property funder
     *  @type Person
     */
    prototype.funder = null;
    /**
     *  Schema.org/colleagues
     *  A colleague of the person.
     * 
     *  @property colleagues
     *  @type Person
     */
    prototype.colleagues = null;
    /**
     *  Schema.org/deathDate
     *  Date of death.
     * 
     *  @property deathDate
     *  @type Date
     */
    prototype.deathDate = null;
    /**
     *  Schema.org/memberOf
     *  An Organization (or ProgramMembership) to which this Person or Organization belongs.
     * 
     *  @property memberOf
     *  @type Organization
     */
    prototype.memberOf = null;
    /**
     *  Schema.org/height
     *  The height of the item.
     * 
     *  @property height
     *  @type Distance
     */
    prototype.height = null;
    /**
     *  Schema.org/workLocation
     *  A contact location for a person's place of work.
     * 
     *  @property workLocation
     *  @type ContactPoint
     */
    prototype.workLocation = null;
    /**
     *  Schema.org/netWorth
     *  The total financial value of the person as calculated by subtracting assets from liabilities.
     * 
     *  @property netWorth
     *  @type PriceSpecification
     */
    prototype.netWorth = null;
    /**
     *  Schema.org/children
     *  A child of the person.
     * 
     *  @property children
     *  @type Person
     */
    prototype.children = null;
    /**
     *  Schema.org/jobTitle
     *  The job title of the person (for example, Financial Manager).
     * 
     *  @property jobTitle
     *  @type Text
     */
    prototype.jobTitle = null;
    /**
     *  Schema.org/hasOfferCatalog
     *  Indicates an OfferCatalog listing for this Organization, Person, or Service.
     * 
     *  @property hasOfferCatalog
     *  @type OfferCatalog
     */
    prototype.hasOfferCatalog = null;
    /**
     *  Schema.org/deathPlace
     *  The place where the person died.
     * 
     *  @property deathPlace
     *  @type Place
     */
    prototype.deathPlace = null;
    /**
     *  Schema.org/globalLocationNumber
     *  The [Global Location Number](http://www.gs1.org/gln) (GLN, sometimes also referred to as International Location Number or ILN) of the respective organization, person, or place. The GLN is a 13-digit number used to identify parties and physical locations.
     * 
     *  @property globalLocationNumber
     *  @type Text
     */
    prototype.globalLocationNumber = null;
    /**
     *  Schema.org/birthPlace
     *  The place where the person was born.
     * 
     *  @property birthPlace
     *  @type Place
     */
    prototype.birthPlace = null;
    /**
     *  Schema.org/gender
     *  Gender of the person. While schema:Male and schema:Female may be used, text strings are also acceptable for people who do not identify as a binary gender.
     * 
     *  @property gender
     *  @type Text
     */
    prototype.gender = null;
    /**
     *  Schema.org/parents
     *  A parents of the person.
     * 
     *  @property parents
     *  @type Person
     */
    prototype.parents = null;
    /**
     *  Schema.org/alumniOf
     *  An organization that the person is an alumni of.
     * 
     *  @property alumniOf
     *  @type EducationalOrganization
     */
    prototype.alumniOf = null;
    /**
     *  Schema.org/homeLocation
     *  A contact location for a person's residence.
     * 
     *  @property homeLocation
     *  @type ContactPoint
     */
    prototype.homeLocation = null;
    /**
     *  Schema.org/duns
     *  The Dun & Bradstreet DUNS number for identifying an organization or business person.
     * 
     *  @property duns
     *  @type Text
     */
    prototype.duns = null;
    /**
     *  Schema.org/taxID
     *  The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.
     * 
     *  @property taxID
     *  @type Text
     */
    prototype.taxID = null;
    /**
     *  Schema.org/award
     *  An award won by or for this item.
     * 
     *  @property award
     *  @type Text
     */
    prototype.award = null;
    /**
     *  Schema.org/birthDate
     *  Date of birth.
     * 
     *  @property birthDate
     *  @type Date
     */
    prototype.birthDate = null;
    /**
     *  Schema.org/makesOffer
     *  A pointer to products or services offered by the organization or person.
     * 
     *  @property makesOffer
     *  @type Offer
     */
    prototype.makesOffer = null;
    /**
     *  Schema.org/contactPoints
     *  A contact point for a person or organization.
     * 
     *  @property contactPoints
     *  @type ContactPoint
     */
    prototype.contactPoints = null;
    /**
     *  Schema.org/awards
     *  Awards won by or for this item.
     * 
     *  @property awards
     *  @type Text
     */
    prototype.awards = null;
    /**
     *  Schema.org/familyName
     *  Family name. In the U.S., the last name of an Person. This can be used along with givenName instead of the name property.
     * 
     *  @property familyName
     *  @type Text
     */
    prototype.familyName = null;
    /**
     *  Schema.org/seeks
     *  A pointer to products or services sought by the organization or person (demand).
     * 
     *  @property seeks
     *  @type Demand
     */
    prototype.seeks = null;
    /**
     *  Schema.org/sibling
     *  A sibling of the person.
     * 
     *  @property sibling
     *  @type Person
     */
    prototype.sibling = null;
    /**
     *  Schema.org/performerIn
     *  SchemaEvent that this person is a performer or participant in.
     * 
     *  @property performerIn
     *  @type SchemaEvent
     */
    prototype.performerIn = null;
    /**
     *  Schema.org/honorificPrefix
     *  An honorific prefix preceding a Person's name such as Dr/Mrs/Mr.
     * 
     *  @property honorificPrefix
     *  @type Text
     */
    prototype.honorificPrefix = null;
    /**
     *  Schema.org/additionalName
     *  An additional name for a Person, can be used for a middle name.
     * 
     *  @property additionalName
     *  @type Text
     */
    prototype.additionalName = null;
    /**
     *  Schema.org/siblings
     *  A sibling of the person.
     * 
     *  @property siblings
     *  @type Person
     */
    prototype.siblings = null;
    /**
     *  Schema.org/telephone
     *  The telephone number.
     * 
     *  @property telephone
     *  @type Text
     */
    prototype.telephone = null;
    /**
     *  Schema.org/email
     *  Email address.
     * 
     *  @property email
     *  @type Text
     */
    prototype.email = null;
    /**
     *  Schema.org/weight
     *  The weight of the product or person.
     * 
     *  @property weight
     *  @type QuantitativeValue
     */
    prototype.weight = null;
    /**
     *  Schema.org/contactPoint
     *  A contact point for a person or organization.
     * 
     *  @property contactPoint
     *  @type ContactPoint
     */
    prototype.contactPoint = null;
    /**
     *  Schema.org/colleague
     *  A colleague of the person.
     * 
     *  @property colleague
     *  @type URL
     */
    prototype.colleague = null;
    /**
     *  Schema.org/givenName
     *  Given name. In the U.S., the first name of a Person. This can be used along with familyName instead of the name property.
     * 
     *  @property givenName
     *  @type Text
     */
    prototype.givenName = null;
    /**
     *  Schema.org/naics
     *  The North American Industry Classification System (NAICS) code for a particular organization or business person.
     * 
     *  @property naics
     *  @type Text
     */
    prototype.naics = null;
    /**
     *  Schema.org/hasPOS
     *  Points-of-Sales operated by the organization or person.
     * 
     *  @property hasPOS
     *  @type Place
     */
    prototype.hasPOS = null;
    /**
     *  Schema.org/parent
     *  A parent of this person.
     * 
     *  @property parent
     *  @type Person
     */
    prototype.parent = null;
    /**
     *  Schema.org/owns
     *  Products owned by the organization or person.
     * 
     *  @property owns
     *  @type OwnershipInfo
     */
    prototype.owns = null;
    /**
     *  Schema.org/affiliation
     *  An organization that this person is affiliated with. For example, a school/university, a club, or a team.
     * 
     *  @property affiliation
     *  @type Organization
     */
    prototype.affiliation = null;
    /**
     *  Schema.org/sponsor
     *  A person or organization that supports a thing through a pledge, promise, or financial contribution. e.g. a sponsor of a Medical Study or a corporate sponsor of an event.
     * 
     *  @property sponsor
     *  @type Organization
     */
    prototype.sponsor = null;
    /**
     *  Schema.org/isicV4
     *  The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.
     * 
     *  @property isicV4
     *  @type Text
     */
    prototype.isicV4 = null;
    /**
     *  Schema.org/brand
     *  The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.
     * 
     *  @property brand
     *  @type Organization
     */
    prototype.brand = null;
    /**
     *  Schema.org/honorificSuffix
     *  An honorific suffix preceding a Person's name such as M.D. /PhD/MSCSW.
     * 
     *  @property honorificSuffix
     *  @type Text
     */
    prototype.honorificSuffix = null;
    /**
     *  Schema.org/vatID
     *  The Value-added Tax ID of the organization or person.
     * 
     *  @property vatID
     *  @type Text
     */
    prototype.vatID = null;
    /**
     *  Schema.org/nationality
     *  Nationality of the person.
     * 
     *  @property nationality
     *  @type Country
     */
    prototype.nationality = null;
    /**
     *  Schema.org/faxNumber
     *  The fax number.
     * 
     *  @property faxNumber
     *  @type Text
     */
    prototype.faxNumber = null;
    /**
     *  Schema.org/relatedTo
     *  The most generic familial relation.
     * 
     *  @property relatedTo
     *  @type Person
     */
    prototype.relatedTo = null;
    /**
     *  Schema.org/follows
     *  The most generic uni-directional social relation.
     * 
     *  @property follows
     *  @type Person
     */
    prototype.follows = null;
    /**
     *  Schema.org/knows
     *  The most generic bi-directional social/work relation.
     * 
     *  @property knows
     *  @type Person
     */
    prototype.knows = null;
    /**
     *  Schema.org/worksFor
     *  Organizations that the person works for.
     * 
     *  @property worksFor
     *  @type Organization
     */
    prototype.worksFor = null;
}, {address: "PostalAddress", spouse: "Person", funder: "Person", colleagues: "Person", memberOf: "Organization", height: "Distance", workLocation: "ContactPoint", netWorth: "PriceSpecification", children: "Person", hasOfferCatalog: "OfferCatalog", deathPlace: "Place", birthPlace: "Place", parents: "Person", alumniOf: "EducationalOrganization", homeLocation: "ContactPoint", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", sibling: "Person", performerIn: "SchemaEvent", siblings: "Person", weight: "QuantitativeValue", contactPoint: "ContactPoint", hasPOS: "Place", parent: "Person", owns: "OwnershipInfo", affiliation: "Organization", sponsor: "Organization", brand: "Organization", nationality: "Country", relatedTo: "Person", follows: "Person", knows: "Person", worksFor: "Organization", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Action
 *  An action performed by a direct agent and indirect participants upon a direct object. Optionally happens at a location with the help of an inanimate instrument. The execution of the action may produce a result. Specific action sub-type documentation specifies the exact expectation of each argument/role.\n\nSee also [blog post](http://blog.schema.org/2014/04/announcing-schemaorg-actions.html) and [Actions overview document](schema:docs/actions.html).
 * 
 *  @author schema.org
 *  @class Action
 *  @module org.schema
 *  @extends Thing
 */
var Action = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Thing.call(this);
    this.context = "http://schema.org/";
    this.type = "Action";
};
Action = stjs.extend(Action, Thing, [], function(constructor, prototype) {
    /**
     *  Schema.org/result
     *  The result produced in the action. e.g. John wrote *a book*.
     * 
     *  @property result
     *  @type Thing
     */
    prototype.result = null;
    /**
     *  Schema.org/actionStatus
     *  Indicates the current disposition of the Action.
     * 
     *  @property actionStatus
     *  @type ActionStatusType
     */
    prototype.actionStatus = null;
    /**
     *  Schema.org/target
     *  Indicates a target EntryPoint for an Action.
     * 
     *  @property target
     *  @type EntryPoint
     */
    prototype.target = null;
    /**
     *  Schema.org/agent
     *  The direct performer or driver of the action (animate or inanimate). e.g. *John* wrote a book.
     * 
     *  @property agent
     *  @type Person
     */
    prototype.agent = null;
    /**
     *  Schema.org/startTime
     *  The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. e.g. John wrote a book from *January* to December.\n\nNote that SchemaEvent uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.
     * 
     *  @property startTime
     *  @type DateTime
     */
    prototype.startTime = null;
    /**
     *  Schema.org/endTime
     *  The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. e.g. John wrote a book from January to *December*.\n\nNote that SchemaEvent uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.
     * 
     *  @property endTime
     *  @type DateTime
     */
    prototype.endTime = null;
    /**
     *  Schema.org/participant
     *  Other co-agents that participated in the action indirectly. e.g. John wrote a book with *Steve*.
     * 
     *  @property participant
     *  @type Person
     */
    prototype.participant = null;
    /**
     *  Schema.org/instrument
     *  The object that helped the agent perform the action. e.g. John wrote a book with *a pen*.
     * 
     *  @property instrument
     *  @type Thing
     */
    prototype.instrument = null;
    /**
     *  Schema.org/object
     *  The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn't). e.g. John read *a book*.
     * 
     *  @property object
     *  @type Thing
     */
    prototype.object = null;
    /**
     *  Schema.org/error
     *  For failed actions, more information on the cause of the failure.
     * 
     *  @property error
     *  @type Thing
     */
    prototype.error = null;
    /**
     *  Schema.org/location
     *  The location of for example where the event is happening, an organization is located, or where an action takes place.
     * 
     *  @property location
     *  @type PostalAddress
     */
    prototype.location = null;
}, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Organization
 *  An organization such as a school, NGO, corporation, club, etc.
 * 
 *  @author schema.org
 *  @class Organization
 *  @module org.schema
 *  @extends Thing
 */
var Organization = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Thing.call(this);
    this.context = "http://schema.org/";
    this.type = "Organization";
};
Organization = stjs.extend(Organization, Thing, [], function(constructor, prototype) {
    /**
     *  Schema.org/serviceArea
     *  The geographic area where the service is provided.
     * 
     *  @property serviceArea
     *  @type GeoShape
     */
    prototype.serviceArea = null;
    /**
     *  Schema.org/address
     *  Physical address of the item.
     * 
     *  @property address
     *  @type PostalAddress
     */
    prototype.address = null;
    /**
     *  Schema.org/funder
     *  A person or organization that supports (sponsors) something through some kind of financial contribution.
     * 
     *  @property funder
     *  @type Person
     */
    prototype.funder = null;
    /**
     *  Schema.org/memberOf
     *  An Organization (or ProgramMembership) to which this Person or Organization belongs.
     * 
     *  @property memberOf
     *  @type Organization
     */
    prototype.memberOf = null;
    /**
     *  Schema.org/subOrganization
     *  A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific 'department' property.
     * 
     *  @property subOrganization
     *  @type Organization
     */
    prototype.subOrganization = null;
    /**
     *  Schema.org/hasOfferCatalog
     *  Indicates an OfferCatalog listing for this Organization, Person, or Service.
     * 
     *  @property hasOfferCatalog
     *  @type OfferCatalog
     */
    prototype.hasOfferCatalog = null;
    /**
     *  Schema.org/globalLocationNumber
     *  The [Global Location Number](http://www.gs1.org/gln) (GLN, sometimes also referred to as International Location Number or ILN) of the respective organization, person, or place. The GLN is a 13-digit number used to identify parties and physical locations.
     * 
     *  @property globalLocationNumber
     *  @type Text
     */
    prototype.globalLocationNumber = null;
    /**
     *  Schema.org/reviews
     *  Review of the item.
     * 
     *  @property reviews
     *  @type Review
     */
    prototype.reviews = null;
    /**
     *  Schema.org/members
     *  A member of this organization.
     * 
     *  @property members
     *  @type Organization
     */
    prototype.members = null;
    /**
     *  Schema.org/aggregateRating
     *  The overall rating, based on a collection of reviews or ratings, of the item.
     * 
     *  @property aggregateRating
     *  @type AggregateRating
     */
    prototype.aggregateRating = null;
    /**
     *  Schema.org/duns
     *  The Dun & Bradstreet DUNS number for identifying an organization or business person.
     * 
     *  @property duns
     *  @type Text
     */
    prototype.duns = null;
    /**
     *  Schema.org/taxID
     *  The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.
     * 
     *  @property taxID
     *  @type Text
     */
    prototype.taxID = null;
    /**
     *  Schema.org/award
     *  An award won by or for this item.
     * 
     *  @property award
     *  @type Text
     */
    prototype.award = null;
    /**
     *  Schema.org/makesOffer
     *  A pointer to products or services offered by the organization or person.
     * 
     *  @property makesOffer
     *  @type Offer
     */
    prototype.makesOffer = null;
    /**
     *  Schema.org/contactPoints
     *  A contact point for a person or organization.
     * 
     *  @property contactPoints
     *  @type ContactPoint
     */
    prototype.contactPoints = null;
    /**
     *  Schema.org/awards
     *  Awards won by or for this item.
     * 
     *  @property awards
     *  @type Text
     */
    prototype.awards = null;
    /**
     *  Schema.org/seeks
     *  A pointer to products or services sought by the organization or person (demand).
     * 
     *  @property seeks
     *  @type Demand
     */
    prototype.seeks = null;
    /**
     *  Schema.org/member
     *  A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.
     * 
     *  @property member
     *  @type Organization
     */
    prototype.member = null;
    /**
     *  Schema.org/founders
     *  A person who founded this organization.
     * 
     *  @property founders
     *  @type Person
     */
    prototype.founders = null;
    /**
     *  Schema.org/alumni
     *  Alumni of an organization.
     * 
     *  @property alumni
     *  @type Person
     */
    prototype.alumni = null;
    /**
     *  Schema.org/dissolutionDate
     *  The date that this organization was dissolved.
     * 
     *  @property dissolutionDate
     *  @type Date
     */
    prototype.dissolutionDate = null;
    /**
     *  Schema.org/events
     *  Upcoming or past events associated with this place or organization.
     * 
     *  @property events
     *  @type SchemaEvent
     */
    prototype.events = null;
    /**
     *  Schema.org/logo
     *  An associated logo.
     * 
     *  @property logo
     *  @type ImageObject
     */
    prototype.logo = null;
    /**
     *  Schema.org/employees
     *  People working for this organization.
     * 
     *  @property employees
     *  @type Person
     */
    prototype.employees = null;
    /**
     *  Schema.org/telephone
     *  The telephone number.
     * 
     *  @property telephone
     *  @type Text
     */
    prototype.telephone = null;
    /**
     *  Schema.org/email
     *  Email address.
     * 
     *  @property email
     *  @type Text
     */
    prototype.email = null;
    /**
     *  Schema.org/department
     *  A relationship between an organization and a department of that organization, also described as an organization (allowing different urls, logos, opening hours). For example: a store with a pharmacy, or a bakery with a cafe.
     * 
     *  @property department
     *  @type Organization
     */
    prototype.department = null;
    /**
     *  Schema.org/contactPoint
     *  A contact point for a person or organization.
     * 
     *  @property contactPoint
     *  @type ContactPoint
     */
    prototype.contactPoint = null;
    /**
     *  Schema.org/parentOrganization
     *  The larger organization that this organization is a [[subOrganization]] of, if any.
     * 
     *  @property parentOrganization
     *  @type Organization
     */
    prototype.parentOrganization = null;
    /**
     *  Schema.org/legalName
     *  The official name of the organization, e.g. the registered company name.
     * 
     *  @property legalName
     *  @type Text
     */
    prototype.legalName = null;
    /**
     *  Schema.org/foundingDate
     *  The date that this organization was founded.
     * 
     *  @property foundingDate
     *  @type Date
     */
    prototype.foundingDate = null;
    /**
     *  Schema.org/employee
     *  Someone working for this organization.
     * 
     *  @property employee
     *  @type Person
     */
    prototype.employee = null;
    /**
     *  Schema.org/numberOfEmployees
     *  The number of employees in an organization e.g. business.
     * 
     *  @property numberOfEmployees
     *  @type QuantitativeValue
     */
    prototype.numberOfEmployees = null;
    /**
     *  Schema.org/naics
     *  The North American Industry Classification System (NAICS) code for a particular organization or business person.
     * 
     *  @property naics
     *  @type Text
     */
    prototype.naics = null;
    /**
     *  Schema.org/hasPOS
     *  Points-of-Sales operated by the organization or person.
     * 
     *  @property hasPOS
     *  @type Place
     */
    prototype.hasPOS = null;
    /**
     *  Schema.org/review
     *  A review of the item.
     * 
     *  @property review
     *  @type Review
     */
    prototype.review = null;
    /**
     *  Schema.org/foundingLocation
     *  The place where the Organization was founded.
     * 
     *  @property foundingLocation
     *  @type Place
     */
    prototype.foundingLocation = null;
    /**
     *  Schema.org/owns
     *  Products owned by the organization or person.
     * 
     *  @property owns
     *  @type OwnershipInfo
     */
    prototype.owns = null;
    /**
     *  Schema.org/event
     *  Upcoming or past event associated with this place, organization, or action.
     * 
     *  @property event
     *  @type SchemaEvent
     */
    prototype.event = null;
    /**
     *  Schema.org/founder
     *  A person who founded this organization.
     * 
     *  @property founder
     *  @type Person
     */
    prototype.founder = null;
    /**
     *  Schema.org/sponsor
     *  A person or organization that supports a thing through a pledge, promise, or financial contribution. e.g. a sponsor of a Medical Study or a corporate sponsor of an event.
     * 
     *  @property sponsor
     *  @type Organization
     */
    prototype.sponsor = null;
    /**
     *  Schema.org/isicV4
     *  The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.
     * 
     *  @property isicV4
     *  @type Text
     */
    prototype.isicV4 = null;
    /**
     *  Schema.org/location
     *  The location of for example where the event is happening, an organization is located, or where an action takes place.
     * 
     *  @property location
     *  @type PostalAddress
     */
    prototype.location = null;
    /**
     *  Schema.org/brand
     *  The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.
     * 
     *  @property brand
     *  @type Organization
     */
    prototype.brand = null;
    /**
     *  Schema.org/vatID
     *  The Value-added Tax ID of the organization or person.
     * 
     *  @property vatID
     *  @type Text
     */
    prototype.vatID = null;
    /**
     *  Schema.org/leiCode
     *  An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.
     * 
     *  @property leiCode
     *  @type Text
     */
    prototype.leiCode = null;
    /**
     *  Schema.org/faxNumber
     *  The fax number.
     * 
     *  @property faxNumber
     *  @type Text
     */
    prototype.faxNumber = null;
    /**
     *  Schema.org/areaServed
     *  The geographic area where a service or offered item is provided.
     * 
     *  @property areaServed
     *  @type Place
     */
    prototype.areaServed = null;
}, {serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Intangible
 *  A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.
 * 
 *  @author schema.org
 *  @class Intangible
 *  @module org.schema
 *  @extends Thing
 */
var Intangible = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Thing.call(this);
    this.context = "http://schema.org/";
    this.type = "Intangible";
};
Intangible = stjs.extend(Intangible, Thing, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Product
 *  Any offered product or service. For example: a pair of shoes; a concert ticket; the rental of a car; a haircut; or an episode of a TV show streamed online.
 * 
 *  @author schema.org
 *  @class Product
 *  @module org.schema
 *  @extends Thing
 */
var Product = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Thing.call(this);
    this.context = "http://schema.org/";
    this.type = "Product";
};
Product = stjs.extend(Product, Thing, [], function(constructor, prototype) {
    /**
     *  Schema.org/manufacturer
     *  The manufacturer of the product.
     * 
     *  @property manufacturer
     *  @type Organization
     */
    prototype.manufacturer = null;
    /**
     *  Schema.org/sku
     *  The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.
     * 
     *  @property sku
     *  @type Text
     */
    prototype.sku = null;
    /**
     *  Schema.org/productionDate
     *  The date of production of the item, e.g. vehicle.
     * 
     *  @property productionDate
     *  @type Date
     */
    prototype.productionDate = null;
    /**
     *  Schema.org/audience
     *  An intended audience, i.e. a group for whom something was created.
     * 
     *  @property audience
     *  @type Audience
     */
    prototype.audience = null;
    /**
     *  Schema.org/mpn
     *  The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.
     * 
     *  @property mpn
     *  @type Text
     */
    prototype.mpn = null;
    /**
     *  Schema.org/height
     *  The height of the item.
     * 
     *  @property height
     *  @type Distance
     */
    prototype.height = null;
    /**
     *  Schema.org/gtin8
     *  The [GTIN-8](http://apps.gs1.org/GDD/glossary/Pages/GTIN-8.aspx) code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.
     * 
     *  @property gtin8
     *  @type Text
     */
    prototype.gtin8 = null;
    /**
     *  Schema.org/reviews
     *  Review of the item.
     * 
     *  @property reviews
     *  @type Review
     */
    prototype.reviews = null;
    /**
     *  Schema.org/aggregateRating
     *  The overall rating, based on a collection of reviews or ratings, of the item.
     * 
     *  @property aggregateRating
     *  @type AggregateRating
     */
    prototype.aggregateRating = null;
    /**
     *  Schema.org/isConsumableFor
     *  A pointer to another product (or multiple products) for which this product is a consumable.
     * 
     *  @property isConsumableFor
     *  @type Product
     */
    prototype.isConsumableFor = null;
    /**
     *  Schema.org/offers
     *  An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event.
     * 
     *  @property offers
     *  @type Offer
     */
    prototype.offers = null;
    /**
     *  Schema.org/award
     *  An award won by or for this item.
     * 
     *  @property award
     *  @type Text
     */
    prototype.award = null;
    /**
     *  Schema.org/category
     *  A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.
     * 
     *  @property category
     *  @type Text
     */
    prototype.category = null;
    /**
     *  Schema.org/width
     *  The width of the item.
     * 
     *  @property width
     *  @type Distance
     */
    prototype.width = null;
    /**
     *  Schema.org/awards
     *  Awards won by or for this item.
     * 
     *  @property awards
     *  @type Text
     */
    prototype.awards = null;
    /**
     *  Schema.org/additionalProperty
     *  A property-value pair representing an additional characteristics of the entitity, e.g. a product feature or another characteristic for which there is no matching property in schema.org.\n\nNote: Publishers should be aware that applications designed to use specific schema.org properties (e.g. schema:width, schema:color, schema:gtin13, ...) will typically expect such data to be provided using those properties, rather than using the generic property/value mechanism.
     * 
     *  @property additionalProperty
     *  @type PropertyValue
     */
    prototype.additionalProperty = null;
    /**
     *  Schema.org/isAccessoryOrSparePartFor
     *  A pointer to another product (or multiple products) for which this product is an accessory or spare part.
     * 
     *  @property isAccessoryOrSparePartFor
     *  @type Product
     */
    prototype.isAccessoryOrSparePartFor = null;
    /**
     *  Schema.org/logo
     *  An associated logo.
     * 
     *  @property logo
     *  @type ImageObject
     */
    prototype.logo = null;
    /**
     *  Schema.org/gtin14
     *  The [GTIN-14](http://apps.gs1.org/GDD/glossary/Pages/GTIN-14.aspx) code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.
     * 
     *  @property gtin14
     *  @type Text
     */
    prototype.gtin14 = null;
    /**
     *  Schema.org/gtin13
     *  The [GTIN-13](http://apps.gs1.org/GDD/glossary/Pages/GTIN-13.aspx) code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceeding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.
     * 
     *  @property gtin13
     *  @type Text
     */
    prototype.gtin13 = null;
    /**
     *  Schema.org/gtin12
     *  The [GTIN-12](http://apps.gs1.org/GDD/glossary/Pages/GTIN-12.aspx) code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.
     * 
     *  @property gtin12
     *  @type Text
     */
    prototype.gtin12 = null;
    /**
     *  Schema.org/material
     *  A material that something is made from, e.g. leather, wool, cotton, paper.
     * 
     *  @property material
     *  @type URL
     */
    prototype.material = null;
    /**
     *  Schema.org/weight
     *  The weight of the product or person.
     * 
     *  @property weight
     *  @type QuantitativeValue
     */
    prototype.weight = null;
    /**
     *  Schema.org/depth
     *  The depth of the item.
     * 
     *  @property depth
     *  @type Distance
     */
    prototype.depth = null;
    /**
     *  Schema.org/isSimilarTo
     *  A pointer to another, functionally similar product (or multiple products).
     * 
     *  @property isSimilarTo
     *  @type Product
     */
    prototype.isSimilarTo = null;
    /**
     *  Schema.org/model
     *  The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.
     * 
     *  @property model
     *  @type Text
     */
    prototype.model = null;
    /**
     *  Schema.org/color
     *  The color of the product.
     * 
     *  @property color
     *  @type Text
     */
    prototype.color = null;
    /**
     *  Schema.org/isRelatedTo
     *  A pointer to another, somehow related product (or multiple products).
     * 
     *  @property isRelatedTo
     *  @type Product
     */
    prototype.isRelatedTo = null;
    /**
     *  Schema.org/productID
     *  The product identifier, such as ISBN. For example: ``` meta itemprop="productID" content="isbn:123-456-789" ```.
     * 
     *  @property productID
     *  @type Text
     */
    prototype.productID = null;
    /**
     *  Schema.org/review
     *  A review of the item.
     * 
     *  @property review
     *  @type Review
     */
    prototype.review = null;
    /**
     *  Schema.org/purchaseDate
     *  The date the item e.g. vehicle was purchased by the current owner.
     * 
     *  @property purchaseDate
     *  @type Date
     */
    prototype.purchaseDate = null;
    /**
     *  Schema.org/itemCondition
     *  A predefined value from OfferItemCondition or a textual description of the condition of the product or service, or the products or services included in the offer.
     * 
     *  @property itemCondition
     *  @type OfferItemCondition
     */
    prototype.itemCondition = null;
    /**
     *  Schema.org/brand
     *  The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.
     * 
     *  @property brand
     *  @type Organization
     */
    prototype.brand = null;
    /**
     *  Schema.org/releaseDate
     *  The release date of a product or product model. This can be used to distinguish the exact variant of a product.
     * 
     *  @property releaseDate
     *  @type Date
     */
    prototype.releaseDate = null;
}, {manufacturer: "Organization", audience: "Audience", height: "Distance", reviews: "Review", aggregateRating: "AggregateRating", isConsumableFor: "Product", offers: "Offer", width: "Distance", additionalProperty: "PropertyValue", isAccessoryOrSparePartFor: "Product", logo: "ImageObject", weight: "QuantitativeValue", depth: "Distance", isSimilarTo: "Product", isRelatedTo: "Product", review: "Review", itemCondition: "OfferItemCondition", brand: "Organization", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/CreativeWork
 *  The most generic kind of creative work, including books, movies, photographs, software programs, etc.
 * 
 *  @author schema.org
 *  @class CreativeWork
 *  @module org.schema
 *  @extends Thing
 */
var CreativeWork = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Thing.call(this);
    this.context = "http://schema.org/";
    this.type = "CreativeWork";
};
CreativeWork = stjs.extend(CreativeWork, Thing, [], function(constructor, prototype) {
    /**
     *  Schema.org/about
     *  The subject matter of the content.
     * 
     *  @property about
     *  @type Thing
     */
    prototype.about = null;
    /**
     *  Schema.org/educationalAlignment
     *  An alignment to an established educational framework.
     * 
     *  @property educationalAlignment
     *  @type AlignmentObject
     */
    prototype.educationalAlignment = null;
    /**
     *  Schema.org/associatedMedia
     *  A media object that encodes this CreativeWork. This property is a synonym for encoding.
     * 
     *  @property associatedMedia
     *  @type MediaObject
     */
    prototype.associatedMedia = null;
    /**
     *  Schema.org/funder
     *  A person or organization that supports (sponsors) something through some kind of financial contribution.
     * 
     *  @property funder
     *  @type Person
     */
    prototype.funder = null;
    /**
     *  Schema.org/audio
     *  An embedded audio object.
     * 
     *  @property audio
     *  @type AudioObject
     */
    prototype.audio = null;
    /**
     *  Schema.org/workExample
     *  Example/instance/realization/derivation of the concept of this creative work. eg. The paperback edition, first edition, or eBook.
     * 
     *  @property workExample
     *  @type CreativeWork
     */
    prototype.workExample = null;
    /**
     *  Schema.org/provider
     *  The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.
     * 
     *  @property provider
     *  @type Person
     */
    prototype.provider = null;
    /**
     *  Schema.org/encoding
     *  A media object that encodes this CreativeWork. This property is a synonym for associatedMedia.
     * 
     *  @property encoding
     *  @type MediaObject
     */
    prototype.encoding = null;
    /**
     *  Schema.org/interactivityType
     *  The predominant mode of learning supported by the learning resource. Acceptable values are 'active', 'expositive', or 'mixed'.
     * 
     *  @property interactivityType
     *  @type Text
     */
    prototype.interactivityType = null;
    /**
     *  Schema.org/accessibilitySummary
     *  A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as "short descriptions are present but long descriptions will be needed for non-visual users" or "short descriptions are present and no long descriptions are needed."
     * 
     *  @property accessibilitySummary
     *  @type Text
     */
    prototype.accessibilitySummary = null;
    /**
     *  Schema.org/character
     *  Fictional person connected with a creative work.
     * 
     *  @property character
     *  @type Person
     */
    prototype.character = null;
    /**
     *  Schema.org/audience
     *  An intended audience, i.e. a group for whom something was created.
     * 
     *  @property audience
     *  @type Audience
     */
    prototype.audience = null;
    /**
     *  Schema.org/sourceOrganization
     *  The Organization on whose behalf the creator was working.
     * 
     *  @property sourceOrganization
     *  @type Organization
     */
    prototype.sourceOrganization = null;
    /**
     *  Schema.org/isPartOf
     *  Indicates a CreativeWork that this CreativeWork is (in some sense) part of.
     * 
     *  @property isPartOf
     *  @type CreativeWork
     */
    prototype.isPartOf = null;
    /**
     *  Schema.org/video
     *  An embedded video object.
     * 
     *  @property video
     *  @type VideoObject
     */
    prototype.video = null;
    /**
     *  Schema.org/publication
     *  A publication event associated with the item.
     * 
     *  @property publication
     *  @type PublicationEvent
     */
    prototype.publication = null;
    /**
     *  Schema.org/text
     *  The textual content of this CreativeWork.
     * 
     *  @property text
     *  @type Text
     */
    prototype.text = null;
    /**
     *  Schema.org/contributor
     *  A secondary contributor to the CreativeWork or SchemaEvent.
     * 
     *  @property contributor
     *  @type Organization
     */
    prototype.contributor = null;
    /**
     *  Schema.org/reviews
     *  Review of the item.
     * 
     *  @property reviews
     *  @type Review
     */
    prototype.reviews = null;
    /**
     *  Schema.org/typicalAgeRange
     *  The typical expected age range, e.g. '7-9', '11-'.
     * 
     *  @property typicalAgeRange
     *  @type Text
     */
    prototype.typicalAgeRange = null;
    /**
     *  Schema.org/hasPart
     *  Indicates a CreativeWork that is (in some sense) a part of this CreativeWork.
     * 
     *  @property hasPart
     *  @type CreativeWork
     */
    prototype.hasPart = null;
    /**
     *  Schema.org/position
     *  The position of an item in a series or sequence of items.
     * 
     *  @property position
     *  @type Integer
     */
    prototype.position = null;
    /**
     *  Schema.org/releasedEvent
     *  The place and time the release was issued, expressed as a PublicationEvent.
     * 
     *  @property releasedEvent
     *  @type PublicationEvent
     */
    prototype.releasedEvent = null;
    /**
     *  Schema.org/educationalUse
     *  The purpose of a work in the context of education; for example, 'assignment', 'group work'.
     * 
     *  @property educationalUse
     *  @type Text
     */
    prototype.educationalUse = null;
    /**
     *  Schema.org/contentLocation
     *  The location depicted or described in the content. For example, the location in a photograph or painting.
     * 
     *  @property contentLocation
     *  @type Place
     */
    prototype.contentLocation = null;
    /**
     *  Schema.org/schemaVersion
     *  Indicates (by URL or string) a particular version of a schema used in some CreativeWork. For example, a document could declare a schemaVersion using an URL such as schema:version/2.0/ if precise indication of schema version was required by some application.
     * 
     *  @property schemaVersion
     *  @type URL
     */
    prototype.schemaVersion = null;
    /**
     *  Schema.org/accessibilityFeature
     *  Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility ([WebSchemas wiki lists possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
     * 
     *  @property accessibilityFeature
     *  @type Text
     */
    prototype.accessibilityFeature = null;
    /**
     *  Schema.org/aggregateRating
     *  The overall rating, based on a collection of reviews or ratings, of the item.
     * 
     *  @property aggregateRating
     *  @type AggregateRating
     */
    prototype.aggregateRating = null;
    /**
     *  Schema.org/locationCreated
     *  The location where the CreativeWork was created, which may not be the same as the location depicted in the CreativeWork.
     * 
     *  @property locationCreated
     *  @type Place
     */
    prototype.locationCreated = null;
    /**
     *  Schema.org/accessModeSufficient
     *  A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. Expected values include:  auditory, tactile, textual, visual.
     * 
     *  @property accessModeSufficient
     *  @type Text
     */
    prototype.accessModeSufficient = null;
    /**
     *  Schema.org/temporalCoverage
     *  The temporalCoverage of a CreativeWork indicates the period that the content applies to, i.e. that it describes, either as a DateTime or as a textual string indicating a time period in [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
     *  the case of a Dataset it will typically indicate the relevant time period in a precise notation (e.g. for a 2011 census dataset, the year 2011 would be written "2011/2012"). Other forms of content e.g. ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their temporalCoverage in broader terms - textually or via well-known URL.
     *  Written works such as books may sometimes have precise temporal coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601 interval format format via "1939/1945".
     * 
     *  @property temporalCoverage
     *  @type URL
     */
    prototype.temporalCoverage = null;
    /**
     *  Schema.org/accountablePerson
     *  Specifies the Person that is legally accountable for the CreativeWork.
     * 
     *  @property accountablePerson
     *  @type Person
     */
    prototype.accountablePerson = null;
    /**
     *  Schema.org/spatialCoverage
     *  The spatialCoverage of a CreativeWork indicates the place(s) which are the focus of the content. It is a subproperty of
     *  contentLocation intended primarily for more technical and detailed materials. For example with a Dataset, it indicates
     *  areas that the dataset describes: a dataset of New York weather would have spatialCoverage which was the place: the state of New York.
     * 
     *  @property spatialCoverage
     *  @type Place
     */
    prototype.spatialCoverage = null;
    /**
     *  Schema.org/offers
     *  An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event.
     * 
     *  @property offers
     *  @type Offer
     */
    prototype.offers = null;
    /**
     *  Schema.org/editor
     *  Specifies the Person who edited the CreativeWork.
     * 
     *  @property editor
     *  @type Person
     */
    prototype.editor = null;
    /**
     *  Schema.org/discussionUrl
     *  A link to the page containing the comments of the CreativeWork.
     * 
     *  @property discussionUrl
     *  @type URL
     */
    prototype.discussionUrl = null;
    /**
     *  Schema.org/award
     *  An award won by or for this item.
     * 
     *  @property award
     *  @type Text
     */
    prototype.award = null;
    /**
     *  Schema.org/copyrightHolder
     *  The party holding the legal copyright to the CreativeWork.
     * 
     *  @property copyrightHolder
     *  @type Person
     */
    prototype.copyrightHolder = null;
    /**
     *  Schema.org/accessibilityHazard
     *  A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3 ([WebSchemas wiki lists possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
     * 
     *  @property accessibilityHazard
     *  @type Text
     */
    prototype.accessibilityHazard = null;
    /**
     *  Schema.org/copyrightYear
     *  The year during which the claimed copyright for the CreativeWork was first asserted.
     * 
     *  @property copyrightYear
     *  @type Number
     */
    prototype.copyrightYear = null;
    /**
     *  Schema.org/awards
     *  Awards won by or for this item.
     * 
     *  @property awards
     *  @type Text
     */
    prototype.awards = null;
    /**
     *  Schema.org/recordedAt
     *  The SchemaEvent where the CreativeWork was recorded. The CreativeWork may capture all or part of the event.
     * 
     *  @property recordedAt
     *  @type SchemaEvent
     */
    prototype.recordedAt = null;
    /**
     *  Schema.org/commentCount
     *  The number of comments this CreativeWork (e.g. Article, Question or Answer) has received. This is most applicable to works published in Web sites with commenting system; additional comments may exist elsewhere.
     * 
     *  @property commentCount
     *  @type Integer
     */
    prototype.commentCount = null;
    /**
     *  Schema.org/fileFormat
     *  Media type, typically MIME format (see [IANA site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of the content e.g. application/zip of a SoftwareApplication binary. In cases where a CreativeWork has several media type representations, 'encoding' can be used to indicate each MediaObject alongside particular fileFormat information. Unregistered or niche file formats can be indicated instead via the most appropriate URL, e.g. defining Web page or a Wikipedia entry.
     * 
     *  @property fileFormat
     *  @type Text
     */
    prototype.fileFormat = null;
    /**
     *  Schema.org/accessibilityAPI
     *  Indicates that the resource is compatible with the referenced accessibility API ([WebSchemas wiki lists possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
     * 
     *  @property accessibilityAPI
     *  @type Text
     */
    prototype.accessibilityAPI = null;
    /**
     *  Schema.org/publisher
     *  The publisher of the creative work.
     * 
     *  @property publisher
     *  @type Person
     */
    prototype.publisher = null;
    /**
     *  Schema.org/interactionStatistic
     *  The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.
     * 
     *  @property interactionStatistic
     *  @type InteractionCounter
     */
    prototype.interactionStatistic = null;
    /**
     *  Schema.org/contentRating
     *  Official rating of a piece of content—for example,'MPAA PG-13'.
     * 
     *  @property contentRating
     *  @type Text
     */
    prototype.contentRating = null;
    /**
     *  Schema.org/learningResourceType
     *  The predominant type or kind characterizing the learning resource. For example, 'presentation', 'handout'.
     * 
     *  @property learningResourceType
     *  @type Text
     */
    prototype.learningResourceType = null;
    /**
     *  Schema.org/accessMode
     *  The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. Expected values include: auditory, tactile, textual, visual, colorDependent, chartOnVisual, chemOnVisual, diagramOnVisual, mathOnVisual, musicOnVisual, textOnVisual.
     * 
     *  @property accessMode
     *  @type Text
     */
    prototype.accessMode = null;
    /**
     *  Schema.org/material
     *  A material that something is made from, e.g. leather, wool, cotton, paper.
     * 
     *  @property material
     *  @type URL
     */
    prototype.material = null;
    /**
     *  Schema.org/isFamilyFriendly
     *  Indicates whether this content is family friendly.
     * 
     *  @property isFamilyFriendly
     *  @type Boolean
     */
    prototype.isFamilyFriendly = null;
    /**
     *  Schema.org/exampleOfWork
     *  A creative work that this work is an example/instance/realization/derivation of.
     * 
     *  @property exampleOfWork
     *  @type CreativeWork
     */
    prototype.exampleOfWork = null;
    /**
     *  Schema.org/version
     *  The version of the CreativeWork embodied by a specified resource.
     * 
     *  @property version
     *  @type Text
     */
    prototype.version = null;
    /**
     *  Schema.org/dateModified
     *  The date on which the CreativeWork was most recently modified or when the item's entry was modified within a DataFeed.
     * 
     *  @property dateModified
     *  @type DateTime
     */
    prototype.dateModified = null;
    /**
     *  Schema.org/mainEntity
     *  Indicates the primary entity described in some page or other CreativeWork.
     * 
     *  @property mainEntity
     *  @type Thing
     */
    prototype.mainEntity = null;
    /**
     *  Schema.org/genre
     *  Genre of the creative work, broadcast channel or group.
     * 
     *  @property genre
     *  @type URL
     */
    prototype.genre = null;
    /**
     *  Schema.org/keywords
     *  Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
     * 
     *  @property keywords
     *  @type Text
     */
    prototype.keywords = null;
    /**
     *  Schema.org/author
     *  The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.
     * 
     *  @property author
     *  @type Person
     */
    prototype.author = null;
    /**
     *  Schema.org/isBasedOnUrl
     *  A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.
     * 
     *  @property isBasedOnUrl
     *  @type URL
     */
    prototype.isBasedOnUrl = null;
    /**
     *  Schema.org/timeRequired
     *  Approximate or typical time it takes to work with or through this learning resource for the typical intended target audience, e.g. 'P30M', 'P1H25M'.
     * 
     *  @property timeRequired
     *  @type Duration
     */
    prototype.timeRequired = null;
    /**
     *  Schema.org/translator
     *  Organization or person who adapts a creative work to different languages, regional differences and technical requirements of a target market, or that translates during some event.
     * 
     *  @property translator
     *  @type Person
     */
    prototype.translator = null;
    /**
     *  Schema.org/thumbnailUrl
     *  A thumbnail image relevant to the Thing.
     * 
     *  @property thumbnailUrl
     *  @type URL
     */
    prototype.thumbnailUrl = null;
    /**
     *  Schema.org/comment
     *  Comments, typically from users.
     * 
     *  @property comment
     *  @type Comment
     */
    prototype.comment = null;
    /**
     *  Schema.org/inLanguage
     *  The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].
     * 
     *  @property inLanguage
     *  @type Language
     */
    prototype.inLanguage = null;
    /**
     *  Schema.org/review
     *  A review of the item.
     * 
     *  @property review
     *  @type Review
     */
    prototype.review = null;
    /**
     *  Schema.org/license
     *  A license document that applies to this content, typically indicated by URL.
     * 
     *  @property license
     *  @type CreativeWork
     */
    prototype.license = null;
    /**
     *  Schema.org/accessibilityControl
     *  Identifies input methods that are sufficient to fully control the described resource ([WebSchemas wiki lists possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
     * 
     *  @property accessibilityControl
     *  @type Text
     */
    prototype.accessibilityControl = null;
    /**
     *  Schema.org/encodings
     *  A media object that encodes this CreativeWork.
     * 
     *  @property encodings
     *  @type MediaObject
     */
    prototype.encodings = null;
    /**
     *  Schema.org/isBasedOn
     *  A resource that was used in the creation of this resource. This term can be repeated for multiple sources. For example, http://example.com/great-multiplication-intro.html.
     * 
     *  @property isBasedOn
     *  @type Product
     */
    prototype.isBasedOn = null;
    /**
     *  Schema.org/creator
     *  The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.
     * 
     *  @property creator
     *  @type Person
     */
    prototype.creator = null;
    /**
     *  Schema.org/publishingPrinciples
     *  Link to page describing the editorial principles of the organization primarily responsible for the creation of the CreativeWork.
     * 
     *  @property publishingPrinciples
     *  @type URL
     */
    prototype.publishingPrinciples = null;
    /**
     *  Schema.org/sponsor
     *  A person or organization that supports a thing through a pledge, promise, or financial contribution. e.g. a sponsor of a Medical Study or a corporate sponsor of an event.
     * 
     *  @property sponsor
     *  @type Organization
     */
    prototype.sponsor = null;
    /**
     *  Schema.org/producer
     *  The person or organization who produced the work (e.g. music album, movie, tv/radio series etc.).
     * 
     *  @property producer
     *  @type Person
     */
    prototype.producer = null;
    /**
     *  Schema.org/mentions
     *  Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.
     * 
     *  @property mentions
     *  @type Thing
     */
    prototype.mentions = null;
    /**
     *  Schema.org/dateCreated
     *  The date on which the CreativeWork was created or the item was added to a DataFeed.
     * 
     *  @property dateCreated
     *  @type Date
     */
    prototype.dateCreated = null;
    /**
     *  Schema.org/datePublished
     *  Date of first broadcast/publication.
     * 
     *  @property datePublished
     *  @type Date
     */
    prototype.datePublished = null;
    /**
     *  Schema.org/isAccessibleForFree
     *  A flag to signal that the publication is accessible for free.
     * 
     *  @property isAccessibleForFree
     *  @type Boolean
     */
    prototype.isAccessibleForFree = null;
    /**
     *  Schema.org/alternativeHeadline
     *  A secondary title of the CreativeWork.
     * 
     *  @property alternativeHeadline
     *  @type Text
     */
    prototype.alternativeHeadline = null;
    /**
     *  Schema.org/headline
     *  Headline of the article.
     * 
     *  @property headline
     *  @type Text
     */
    prototype.headline = null;
    /**
     *  Schema.org/citation
     *  A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.
     * 
     *  @property citation
     *  @type Text
     */
    prototype.citation = null;
}, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BusinessEvent
 *  SchemaEvent type: Business event.
 * 
 *  @author schema.org
 *  @class BusinessEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var BusinessEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "BusinessEvent";
};
BusinessEvent = stjs.extend(BusinessEvent, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SaleEvent
 *  SchemaEvent type: Sales event.
 * 
 *  @author schema.org
 *  @class SaleEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var SaleEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "SaleEvent";
};
SaleEvent = stjs.extend(SaleEvent, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TheaterEvent
 *  SchemaEvent type: Theater performance.
 * 
 *  @author schema.org
 *  @class TheaterEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var TheaterEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "TheaterEvent";
};
TheaterEvent = stjs.extend(TheaterEvent, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/EducationEvent
 *  SchemaEvent type: Education event.
 * 
 *  @author schema.org
 *  @class EducationEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var EducationEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "EducationEvent";
};
EducationEvent = stjs.extend(EducationEvent, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SocialEvent
 *  SchemaEvent type: Social event.
 * 
 *  @author schema.org
 *  @class SocialEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var SocialEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "SocialEvent";
};
SocialEvent = stjs.extend(SocialEvent, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/LiteraryEvent
 *  SchemaEvent type: Literary event.
 * 
 *  @author schema.org
 *  @class LiteraryEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var LiteraryEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "LiteraryEvent";
};
LiteraryEvent = stjs.extend(LiteraryEvent, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DanceEvent
 *  SchemaEvent type: A social dance.
 * 
 *  @author schema.org
 *  @class DanceEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var DanceEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "DanceEvent";
};
DanceEvent = stjs.extend(DanceEvent, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DeliveryEvent
 *  An event involving the delivery of an item.
 * 
 *  @author schema.org
 *  @class DeliveryEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var DeliveryEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "DeliveryEvent";
};
DeliveryEvent = stjs.extend(DeliveryEvent, SchemaEvent, [], function(constructor, prototype) {
    /**
     *  Schema.org/hasDeliveryMethod
     *  Method used for delivery or shipping.
     * 
     *  @property hasDeliveryMethod
     *  @type DeliveryMethod
     */
    prototype.hasDeliveryMethod = null;
    /**
     *  Schema.org/availableThrough
     *  After this date, the item will no longer be available for pickup.
     * 
     *  @property availableThrough
     *  @type DateTime
     */
    prototype.availableThrough = null;
    /**
     *  Schema.org/availableFrom
     *  When the item is available for pickup from the store, locker, etc.
     * 
     *  @property availableFrom
     *  @type DateTime
     */
    prototype.availableFrom = null;
    /**
     *  Schema.org/accessCode
     *  Password, PIN, or access code needed for delivery (e.g. from a locker).
     * 
     *  @property accessCode
     *  @type Text
     */
    prototype.accessCode = null;
}, {hasDeliveryMethod: "DeliveryMethod", about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/UserInteraction
 *  UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].
 * 
 *  @author schema.org
 *  @class UserInteraction
 *  @module org.schema
 *  @extends SchemaEvent
 */
var UserInteraction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "UserInteraction";
};
UserInteraction = stjs.extend(UserInteraction, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PublicationEvent
 *  A PublicationEvent corresponds indifferently to the event of publication for a CreativeWork of any type e.g. a broadcast event, an on-demand event, a book/journal publication via a variety of delivery media.
 * 
 *  @author schema.org
 *  @class PublicationEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var PublicationEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "PublicationEvent";
};
PublicationEvent = stjs.extend(PublicationEvent, SchemaEvent, [], function(constructor, prototype) {
    /**
     *  Schema.org/publishedOn
     *  A broadcast service associated with the publication event.
     * 
     *  @property publishedOn
     *  @type BroadcastService
     */
    prototype.publishedOn = null;
    /**
     *  Schema.org/free
     *  A flag to signal that the publication or event is accessible for free.
     * 
     *  @property free
     *  @type Boolean
     */
    prototype.free = null;
    /**
     *  Schema.org/isAccessibleForFree
     *  A flag to signal that the publication is accessible for free.
     * 
     *  @property isAccessibleForFree
     *  @type Boolean
     */
    prototype.isAccessibleForFree = null;
}, {publishedOn: "BroadcastService", about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ScreeningEvent
 *  A screening of a movie or other video.
 * 
 *  @author schema.org
 *  @class ScreeningEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var ScreeningEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "ScreeningEvent";
};
ScreeningEvent = stjs.extend(ScreeningEvent, SchemaEvent, [], function(constructor, prototype) {
    /**
     *  Schema.org/videoFormat
     *  The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).
     * 
     *  @property videoFormat
     *  @type Text
     */
    prototype.videoFormat = null;
    /**
     *  Schema.org/subtitleLanguage
     *  Languages in which subtitles/captions are available, in [IETF BCP 47 standard format](http://tools.ietf.org/html/bcp47).
     * 
     *  @property subtitleLanguage
     *  @type Text
     */
    prototype.subtitleLanguage = null;
    /**
     *  Schema.org/workPresented
     *  The movie presented during this event.
     * 
     *  @property workPresented
     *  @type Movie
     */
    prototype.workPresented = null;
}, {workPresented: "Movie", about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ChildrensEvent
 *  SchemaEvent type: Children's event.
 * 
 *  @author schema.org
 *  @class ChildrensEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var ChildrensEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "ChildrensEvent";
};
ChildrensEvent = stjs.extend(ChildrensEvent, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/VisualArtsEvent
 *  SchemaEvent type: Visual arts event.
 * 
 *  @author schema.org
 *  @class VisualArtsEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var VisualArtsEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "VisualArtsEvent";
};
VisualArtsEvent = stjs.extend(VisualArtsEvent, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MusicEvent
 *  SchemaEvent type: Music event.
 * 
 *  @author schema.org
 *  @class MusicEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var MusicEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "MusicEvent";
};
MusicEvent = stjs.extend(MusicEvent, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Festival
 *  SchemaEvent type: Festival.
 * 
 *  @author schema.org
 *  @class Festival
 *  @module org.schema
 *  @extends SchemaEvent
 */
var Festival = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "Festival";
};
Festival = stjs.extend(Festival, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/CourseInstance
 *  An instance of a [[Course]] which is distinct from other instances because it is offered at a different time or location or through different media or modes of study or to a specific section of students.
 * 
 *  @author schema.org
 *  @class CourseInstance
 *  @module org.schema
 *  @extends SchemaEvent
 */
var CourseInstance = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "CourseInstance";
};
CourseInstance = stjs.extend(CourseInstance, SchemaEvent, [], function(constructor, prototype) {
    /**
     *  Schema.org/instructor
     *  A person assigned to instruct or provide instructional assistance for the [[CourseInstance]].
     * 
     *  @property instructor
     *  @type Person
     */
    prototype.instructor = null;
    /**
     *  Schema.org/courseMode
     *  The medium or means of delivery of the course instance or the mode of study, either as a text label (e.g. "online", "onsite" or "blended"; "synchronous" or "asynchronous"; "full-time" or "part-time") or as a URL reference to a term from a controlled vocabulary (e.g. https://ceds.ed.gov/element/001311#Asynchronous ).
     * 
     *  @property courseMode
     *  @type Text
     */
    prototype.courseMode = null;
}, {instructor: "Person", about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ComedyEvent
 *  SchemaEvent type: Comedy event.
 * 
 *  @author schema.org
 *  @class ComedyEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var ComedyEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "ComedyEvent";
};
ComedyEvent = stjs.extend(ComedyEvent, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SportsEvent
 *  SchemaEvent type: Sports event.
 * 
 *  @author schema.org
 *  @class SportsEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var SportsEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "SportsEvent";
};
SportsEvent = stjs.extend(SportsEvent, SchemaEvent, [], function(constructor, prototype) {
    /**
     *  Schema.org/awayTeam
     *  The away team in a sports event.
     * 
     *  @property awayTeam
     *  @type Person
     */
    prototype.awayTeam = null;
    /**
     *  Schema.org/homeTeam
     *  The home team in a sports event.
     * 
     *  @property homeTeam
     *  @type SportsTeam
     */
    prototype.homeTeam = null;
    /**
     *  Schema.org/competitor
     *  A competitor in a sports event.
     * 
     *  @property competitor
     *  @type Person
     */
    prototype.competitor = null;
}, {awayTeam: "Person", homeTeam: "SportsTeam", competitor: "Person", about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ExhibitionEvent
 *  SchemaEvent type: Exhibition event, e.g. at a museum, library, archive, tradeshow, ...
 * 
 *  @author schema.org
 *  @class ExhibitionEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var ExhibitionEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "ExhibitionEvent";
};
ExhibitionEvent = stjs.extend(ExhibitionEvent, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/FoodEvent
 *  SchemaEvent type: Food event.
 * 
 *  @author schema.org
 *  @class FoodEvent
 *  @module org.schema
 *  @extends SchemaEvent
 */
var FoodEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SchemaEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "FoodEvent";
};
FoodEvent = stjs.extend(FoodEvent, SchemaEvent, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/AdministrativeArea
 *  A geographical region, typically under the jurisdiction of a particular government.
 * 
 *  @author schema.org
 *  @class AdministrativeArea
 *  @module org.schema
 *  @extends Place
 */
var AdministrativeArea = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Place.call(this);
    this.context = "http://schema.org/";
    this.type = "AdministrativeArea";
};
AdministrativeArea = stjs.extend(AdministrativeArea, Place, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/CivicStructure
 *  A public structure, such as a town hall or concert hall.
 * 
 *  @author schema.org
 *  @class CivicStructure
 *  @module org.schema
 *  @extends Place
 */
var CivicStructure = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Place.call(this);
    this.context = "http://schema.org/";
    this.type = "CivicStructure";
};
CivicStructure = stjs.extend(CivicStructure, Place, [], function(constructor, prototype) {
    /**
     *  Schema.org/openingHours
     *  The general opening hours for a business. Opening hours can be specified as a weekly time range, starting with days, then times per day. Multiple days can be listed with commas ',' separating each day. Day or time ranges are specified using a hyphen '-'.\n\n* Days are specified using the following two-letter combinations: ```Mo```, ```Tu```, ```We```, ```Th```, ```Fr```, ```Sa```, ```Su```.\n* Times are specified using 24:00 time. For example, 3pm is specified as ```15:00```. \n* Here is an example: <code>&lt;time itemprop="openingHours" datetime=&quot;Tu,Th 16:00-20:00&quot;&gt;Tuesdays and Thursdays 4-8pm&lt;/time&gt;</code>.\n* If a business is open 7 days a week, then it can be specified as <code>&lt;time itemprop=&quot;openingHours&quot; datetime=&quot;Mo-Su&quot;&gt;Monday through Sunday, all day&lt;/time&gt;</code>.
     * 
     *  @property openingHours
     *  @type Text
     */
    prototype.openingHours = null;
}, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TouristAttraction
 *  A tourist attraction.
 * 
 *  @author schema.org
 *  @class TouristAttraction
 *  @module org.schema
 *  @extends Place
 */
var TouristAttraction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Place.call(this);
    this.context = "http://schema.org/";
    this.type = "TouristAttraction";
};
TouristAttraction = stjs.extend(TouristAttraction, Place, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/LandmarksOrHistoricalBuildings
 *  An historical landmark or building.
 * 
 *  @author schema.org
 *  @class LandmarksOrHistoricalBuildings
 *  @module org.schema
 *  @extends Place
 */
var LandmarksOrHistoricalBuildings = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Place.call(this);
    this.context = "http://schema.org/";
    this.type = "LandmarksOrHistoricalBuildings";
};
LandmarksOrHistoricalBuildings = stjs.extend(LandmarksOrHistoricalBuildings, Place, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Accommodation
 *  An accommodation is a place that can accommodate human beings, e.g. a hotel room, a camping pitch, or a meeting room. Many accommodations are for overnight stays, but this is not a mandatory requirement.
 *  For more specific types of accommodations not defined in schema.org, one can use additionalType with external vocabularies.
 *  <br /><br />
 *  See also the <a href="/docs/hotels.html">dedicated document on the use of schema.org for marking up hotels and other forms of accommodations</a>.
 * 
 *  @author schema.org
 *  @class Accommodation
 *  @module org.schema
 *  @extends Place
 */
var Accommodation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Place.call(this);
    this.context = "http://schema.org/";
    this.type = "Accommodation";
};
Accommodation = stjs.extend(Accommodation, Place, [], function(constructor, prototype) {
    /**
     *  Schema.org/floorSize
     *  The size of the accommodation, e.g. in square meter or squarefoot.
     *  Typical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard
     * 
     *  @property floorSize
     *  @type QuantitativeValue
     */
    prototype.floorSize = null;
    /**
     *  Schema.org/petsAllowed
     *  Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.
     * 
     *  @property petsAllowed
     *  @type Boolean
     */
    prototype.petsAllowed = null;
    /**
     *  Schema.org/amenityFeature
     *  An amenity feature (e.g. a characteristic or service) of the Accommodation. This generic property does not make a statement about whether the feature is included in an offer for the main accommodation or available at extra costs.
     * 
     *  @property amenityFeature
     *  @type LocationFeatureSpecification
     */
    prototype.amenityFeature = null;
    /**
     *  Schema.org/numberOfRooms
     *  The number of rooms (excluding bathrooms and closets) of the acccommodation or lodging business.
     *  Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.
     * 
     *  @property numberOfRooms
     *  @type Number
     */
    prototype.numberOfRooms = null;
    /**
     *  Schema.org/permittedUsage
     *  Indications regarding the permitted usage of the accommodation.
     * 
     *  @property permittedUsage
     *  @type Text
     */
    prototype.permittedUsage = null;
}, {floorSize: "QuantitativeValue", amenityFeature: "LocationFeatureSpecification", photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Landform
 *  A landform or physical feature.  Landform elements include mountains, plains, lakes, rivers, seascape and oceanic waterbody interface features such as bays, peninsulas, seas and so forth, including sub-aqueous terrain features such as submersed mountain ranges, volcanoes, and the great ocean basins.
 * 
 *  @author schema.org
 *  @class Landform
 *  @module org.schema
 *  @extends Place
 */
var Landform = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Place.call(this);
    this.context = "http://schema.org/";
    this.type = "Landform";
};
Landform = stjs.extend(Landform, Place, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Residence
 *  The place where a person lives.
 * 
 *  @author schema.org
 *  @class Residence
 *  @module org.schema
 *  @extends Place
 */
var Residence = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Place.call(this);
    this.context = "http://schema.org/";
    this.type = "Residence";
};
Residence = stjs.extend(Residence, Place, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/UpdateAction
 *  The act of managing by changing/editing the state of the object.
 * 
 *  @author schema.org
 *  @class UpdateAction
 *  @module org.schema
 *  @extends Action
 */
var UpdateAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Action.call(this);
    this.context = "http://schema.org/";
    this.type = "UpdateAction";
};
UpdateAction = stjs.extend(UpdateAction, Action, [], function(constructor, prototype) {
    /**
     *  Schema.org/collection
     *  A sub property of object. The collection target of the action.
     * 
     *  @property collection
     *  @type Thing
     */
    prototype.collection = null;
    /**
     *  Schema.org/targetCollection
     *  A sub property of object. The collection target of the action.
     * 
     *  @property targetCollection
     *  @type Thing
     */
    prototype.targetCollection = null;
}, {collection: "Thing", targetCollection: "Thing", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TradeAction
 *  The act of participating in an exchange of goods and services for monetary compensation. An agent trades an object, product or service with a participant in exchange for a one time or periodic payment.
 * 
 *  @author schema.org
 *  @class TradeAction
 *  @module org.schema
 *  @extends Action
 */
var TradeAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Action.call(this);
    this.context = "http://schema.org/";
    this.type = "TradeAction";
};
TradeAction = stjs.extend(TradeAction, Action, [], function(constructor, prototype) {
    /**
     *  Schema.org/priceSpecification
     *  One or more detailed price specifications, indicating the unit price and delivery or payment charges.
     * 
     *  @property priceSpecification
     *  @type PriceSpecification
     */
    prototype.priceSpecification = null;
    /**
     *  Schema.org/price
     *  The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes.\n\nUsage guidelines:\n\n* Use the [[priceCurrency]] property (with [ISO 4217 codes](http://en.wikipedia.org/wiki/ISO_4217#Active_codes) e.g. "USD") instead of
     *  including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as '$' in the value.\n* Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator.\n* Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting.\n* Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT NINE' (U+0039)) rather than superficially similiar Unicode symbols.
     * 
     *  @property price
     *  @type Number
     */
    prototype.price = null;
}, {priceSpecification: "PriceSpecification", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TransferAction
 *  The act of transferring/moving (abstract or concrete) animate or inanimate objects from one place to another.
 * 
 *  @author schema.org
 *  @class TransferAction
 *  @module org.schema
 *  @extends Action
 */
var TransferAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Action.call(this);
    this.context = "http://schema.org/";
    this.type = "TransferAction";
};
TransferAction = stjs.extend(TransferAction, Action, [], function(constructor, prototype) {
    /**
     *  Schema.org/toLocation
     *  A sub property of location. The final location of the object or the agent after the action.
     * 
     *  @property toLocation
     *  @type Place
     */
    prototype.toLocation = null;
    /**
     *  Schema.org/fromLocation
     *  A sub property of location. The original location of the object or the agent before the action.
     * 
     *  @property fromLocation
     *  @type Place
     */
    prototype.fromLocation = null;
}, {toLocation: "Place", fromLocation: "Place", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MoveAction
 *  The act of an agent relocating to a place.\n\nRelated actions:\n\n* [[TransferAction]]: Unlike TransferAction, the subject of the move is a living Person or Organization rather than an inanimate object.
 * 
 *  @author schema.org
 *  @class MoveAction
 *  @module org.schema
 *  @extends Action
 */
var MoveAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Action.call(this);
    this.context = "http://schema.org/";
    this.type = "MoveAction";
};
MoveAction = stjs.extend(MoveAction, Action, [], function(constructor, prototype) {
    /**
     *  Schema.org/toLocation
     *  A sub property of location. The final location of the object or the agent after the action.
     * 
     *  @property toLocation
     *  @type Place
     */
    prototype.toLocation = null;
    /**
     *  Schema.org/fromLocation
     *  A sub property of location. The original location of the object or the agent before the action.
     * 
     *  @property fromLocation
     *  @type Place
     */
    prototype.fromLocation = null;
}, {toLocation: "Place", fromLocation: "Place", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/InteractAction
 *  The act of interacting with another person or organization.
 * 
 *  @author schema.org
 *  @class InteractAction
 *  @module org.schema
 *  @extends Action
 */
var InteractAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Action.call(this);
    this.context = "http://schema.org/";
    this.type = "InteractAction";
};
InteractAction = stjs.extend(InteractAction, Action, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PlayAction
 *  The act of playing/exercising/training/performing for enjoyment, leisure, recreation, Competition or exercise.\n\nRelated actions:\n\n* [[ListenAction]]: Unlike ListenAction (which is under ConsumeAction), PlayAction refers to performing for an audience or at an event, rather than consuming music.\n* [[WatchAction]]: Unlike WatchAction (which is under ConsumeAction), PlayAction refers to showing/displaying for an audience or at an event, rather than consuming visual content.
 * 
 *  @author schema.org
 *  @class PlayAction
 *  @module org.schema
 *  @extends Action
 */
var PlayAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Action.call(this);
    this.context = "http://schema.org/";
    this.type = "PlayAction";
};
PlayAction = stjs.extend(PlayAction, Action, [], function(constructor, prototype) {
    /**
     *  Schema.org/audience
     *  An intended audience, i.e. a group for whom something was created.
     * 
     *  @property audience
     *  @type Audience
     */
    prototype.audience = null;
    /**
     *  Schema.org/event
     *  Upcoming or past event associated with this place, organization, or action.
     * 
     *  @property event
     *  @type SchemaEvent
     */
    prototype.event = null;
}, {audience: "Audience", event: "SchemaEvent", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/OrganizeAction
 *  The act of manipulating/administering/supervising/controlling one or more objects.
 * 
 *  @author schema.org
 *  @class OrganizeAction
 *  @module org.schema
 *  @extends Action
 */
var OrganizeAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Action.call(this);
    this.context = "http://schema.org/";
    this.type = "OrganizeAction";
};
OrganizeAction = stjs.extend(OrganizeAction, Action, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ControlAction
 *  An agent controls a device or application.
 * 
 *  @author schema.org
 *  @class ControlAction
 *  @module org.schema
 *  @extends Action
 */
var ControlAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Action.call(this);
    this.context = "http://schema.org/";
    this.type = "ControlAction";
};
ControlAction = stjs.extend(ControlAction, Action, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/AssessAction
 *  The act of forming one's opinion, reaction or sentiment.
 * 
 *  @author schema.org
 *  @class AssessAction
 *  @module org.schema
 *  @extends Action
 */
var AssessAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Action.call(this);
    this.context = "http://schema.org/";
    this.type = "AssessAction";
};
AssessAction = stjs.extend(AssessAction, Action, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ConsumeAction
 *  The act of ingesting information/resources/food.
 * 
 *  @author schema.org
 *  @class ConsumeAction
 *  @module org.schema
 *  @extends Action
 */
var ConsumeAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Action.call(this);
    this.context = "http://schema.org/";
    this.type = "ConsumeAction";
};
ConsumeAction = stjs.extend(ConsumeAction, Action, [], function(constructor, prototype) {
    /**
     *  Schema.org/expectsAcceptanceOf
     *  An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.
     * 
     *  @property expectsAcceptanceOf
     *  @type Offer
     */
    prototype.expectsAcceptanceOf = null;
}, {expectsAcceptanceOf: "Offer", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SearchAction
 *  The act of searching for an object.\n\nRelated actions:\n\n* [[FindAction]]: SearchAction generally leads to a FindAction, but not necessarily.
 * 
 *  @author schema.org
 *  @class SearchAction
 *  @module org.schema
 *  @extends Action
 */
var SearchAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Action.call(this);
    this.context = "http://schema.org/";
    this.type = "SearchAction";
};
SearchAction = stjs.extend(SearchAction, Action, [], function(constructor, prototype) {
    /**
     *  Schema.org/query
     *  A sub property of instrument. The query used on this action.
     * 
     *  @property query
     *  @type Text
     */
    prototype.query = null;
}, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/CreateAction
 *  The act of deliberately creating/producing/generating/building a result out of the agent.
 * 
 *  @author schema.org
 *  @class CreateAction
 *  @module org.schema
 *  @extends Action
 */
var CreateAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Action.call(this);
    this.context = "http://schema.org/";
    this.type = "CreateAction";
};
CreateAction = stjs.extend(CreateAction, Action, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/AchieveAction
 *  The act of accomplishing something via previous efforts. It is an instantaneous action rather than an ongoing process.
 * 
 *  @author schema.org
 *  @class AchieveAction
 *  @module org.schema
 *  @extends Action
 */
var AchieveAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Action.call(this);
    this.context = "http://schema.org/";
    this.type = "AchieveAction";
};
AchieveAction = stjs.extend(AchieveAction, Action, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/FindAction
 *  The act of finding an object.\n\nRelated actions:\n\n* [[SearchAction]]: FindAction is generally lead by a SearchAction, but not necessarily.
 * 
 *  @author schema.org
 *  @class FindAction
 *  @module org.schema
 *  @extends Action
 */
var FindAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Action.call(this);
    this.context = "http://schema.org/";
    this.type = "FindAction";
};
FindAction = stjs.extend(FindAction, Action, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SportsOrganization
 *  Represents the collection of all sports organizations, including sports teams, governing bodies, and sports associations.
 * 
 *  @author schema.org
 *  @class SportsOrganization
 *  @module org.schema
 *  @extends Organization
 */
var SportsOrganization = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Organization.call(this);
    this.context = "http://schema.org/";
    this.type = "SportsOrganization";
};
SportsOrganization = stjs.extend(SportsOrganization, Organization, [], function(constructor, prototype) {
    /**
     *  Schema.org/sport
     *  A type of sport (e.g. Baseball).
     * 
     *  @property sport
     *  @type Text
     */
    prototype.sport = null;
}, {serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PerformingGroup
 *  A performance group, such as a band, an orchestra, or a circus.
 * 
 *  @author schema.org
 *  @class PerformingGroup
 *  @module org.schema
 *  @extends Organization
 */
var PerformingGroup = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Organization.call(this);
    this.context = "http://schema.org/";
    this.type = "PerformingGroup";
};
PerformingGroup = stjs.extend(PerformingGroup, Organization, [], null, {serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/GovernmentOrganization
 *  A governmental organization or agency.
 * 
 *  @author schema.org
 *  @class GovernmentOrganization
 *  @module org.schema
 *  @extends Organization
 */
var GovernmentOrganization = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Organization.call(this);
    this.context = "http://schema.org/";
    this.type = "GovernmentOrganization";
};
GovernmentOrganization = stjs.extend(GovernmentOrganization, Organization, [], null, {serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Corporation
 *  Organization: A business corporation.
 * 
 *  @author schema.org
 *  @class Corporation
 *  @module org.schema
 *  @extends Organization
 */
var Corporation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Organization.call(this);
    this.context = "http://schema.org/";
    this.type = "Corporation";
};
Corporation = stjs.extend(Corporation, Organization, [], function(constructor, prototype) {
    /**
     *  Schema.org/tickerSymbol
     *  The exchange traded instrument associated with a Corporation object. The tickerSymbol is expressed as an exchange and an instrument name separated by a space character. For the exchange component of the tickerSymbol attribute, we reccommend using the controlled vocaulary of Market Identifier Codes (MIC) specified in ISO15022.
     * 
     *  @property tickerSymbol
     *  @type Text
     */
    prototype.tickerSymbol = null;
}, {serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Airline
 *  An organization that provides flights for passengers.
 * 
 *  @author schema.org
 *  @class Airline
 *  @module org.schema
 *  @extends Organization
 */
var Airline = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Organization.call(this);
    this.context = "http://schema.org/";
    this.type = "Airline";
};
Airline = stjs.extend(Airline, Organization, [], function(constructor, prototype) {
    /**
     *  Schema.org/iataCode
     *  IATA identifier for an airline or airport.
     * 
     *  @property iataCode
     *  @type Text
     */
    prototype.iataCode = null;
    /**
     *  Schema.org/boardingPolicy
     *  The type of boarding policy used by the airline (e.g. zone-based or group-based).
     * 
     *  @property boardingPolicy
     *  @type BoardingPolicyType
     */
    prototype.boardingPolicy = null;
}, {boardingPolicy: "BoardingPolicyType", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/EducationalOrganization
 *  An educational organization.
 * 
 *  @author schema.org
 *  @class EducationalOrganization
 *  @module org.schema
 *  @extends Organization
 */
var EducationalOrganization = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Organization.call(this);
    this.context = "http://schema.org/";
    this.type = "EducationalOrganization";
};
EducationalOrganization = stjs.extend(EducationalOrganization, Organization, [], function(constructor, prototype) {
    /**
     *  Schema.org/alumni
     *  Alumni of an organization.
     * 
     *  @property alumni
     *  @type Person
     */
    prototype.alumni = null;
}, {alumni: "Person", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MedicalOrganization
 *  A medical organization (physical or not), such as hospital, institution or clinic.
 * 
 *  @author schema.org
 *  @class MedicalOrganization
 *  @module org.schema
 *  @extends Organization
 */
var MedicalOrganization = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Organization.call(this);
    this.context = "http://schema.org/";
    this.type = "MedicalOrganization";
};
MedicalOrganization = stjs.extend(MedicalOrganization, Organization, [], null, {serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/NGO
 *  Organization: Non-governmental Organization.
 * 
 *  @author schema.org
 *  @class NGO
 *  @module org.schema
 *  @extends Organization
 */
var NGO = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Organization.call(this);
    this.context = "http://schema.org/";
    this.type = "NGO";
};
NGO = stjs.extend(NGO, Organization, [], null, {serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/LocalBusiness
 *  A particular physical business or branch of an organization. Examples of LocalBusiness include a restaurant, a particular branch of a restaurant chain, a branch of a bank, a medical practice, a club, a bowling alley, etc.
 * 
 *  @author schema.org
 *  @class LocalBusiness
 *  @module org.schema
 *  @extends Organization
 */
var LocalBusiness = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Organization.call(this);
    this.context = "http://schema.org/";
    this.type = "LocalBusiness";
};
LocalBusiness = stjs.extend(LocalBusiness, Organization, [], function(constructor, prototype) {
    /**
     *  Schema.org/priceRange
     *  The price range of the business, for example ```$$$```.
     * 
     *  @property priceRange
     *  @type Text
     */
    prototype.priceRange = null;
    /**
     *  Schema.org/branchOf
     *  The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical)[[branch]].
     * 
     *  @property branchOf
     *  @type Organization
     */
    prototype.branchOf = null;
    /**
     *  Schema.org/paymentAccepted
     *  Cash, credit card, etc.
     * 
     *  @property paymentAccepted
     *  @type Text
     */
    prototype.paymentAccepted = null;
    /**
     *  Schema.org/openingHours
     *  The general opening hours for a business. Opening hours can be specified as a weekly time range, starting with days, then times per day. Multiple days can be listed with commas ',' separating each day. Day or time ranges are specified using a hyphen '-'.\n\n* Days are specified using the following two-letter combinations: ```Mo```, ```Tu```, ```We```, ```Th```, ```Fr```, ```Sa```, ```Su```.\n* Times are specified using 24:00 time. For example, 3pm is specified as ```15:00```. \n* Here is an example: <code>&lt;time itemprop="openingHours" datetime=&quot;Tu,Th 16:00-20:00&quot;&gt;Tuesdays and Thursdays 4-8pm&lt;/time&gt;</code>.\n* If a business is open 7 days a week, then it can be specified as <code>&lt;time itemprop=&quot;openingHours&quot; datetime=&quot;Mo-Su&quot;&gt;Monday through Sunday, all day&lt;/time&gt;</code>.
     * 
     *  @property openingHours
     *  @type Text
     */
    prototype.openingHours = null;
    /**
     *  Schema.org/currenciesAccepted
     *  The currency accepted (in [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217)).
     * 
     *  @property currenciesAccepted
     *  @type Text
     */
    prototype.currenciesAccepted = null;
}, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/JobPosting
 *  A listing that describes a job opening in a certain organization.
 * 
 *  @author schema.org
 *  @class JobPosting
 *  @module org.schema
 *  @extends Intangible
 */
var JobPosting = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "JobPosting";
};
JobPosting = stjs.extend(JobPosting, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/benefits
     *  Description of benefits associated with the job.
     * 
     *  @property benefits
     *  @type Text
     */
    prototype.benefits = null;
    /**
     *  Schema.org/qualifications
     *  Specific qualifications required for this role.
     * 
     *  @property qualifications
     *  @type Text
     */
    prototype.qualifications = null;
    /**
     *  Schema.org/incentiveCompensation
     *  Description of bonus and commission compensation aspects of the job.
     * 
     *  @property incentiveCompensation
     *  @type Text
     */
    prototype.incentiveCompensation = null;
    /**
     *  Schema.org/workHours
     *  The typical working hours for this job (e.g. 1st shift, night shift, 8am-5pm).
     * 
     *  @property workHours
     *  @type Text
     */
    prototype.workHours = null;
    /**
     *  Schema.org/salaryCurrency
     *  The currency (coded using [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) ) used for the main salary information in this job posting or for this employee.
     * 
     *  @property salaryCurrency
     *  @type Text
     */
    prototype.salaryCurrency = null;
    /**
     *  Schema.org/jobBenefits
     *  Description of benefits associated with the job.
     * 
     *  @property jobBenefits
     *  @type Text
     */
    prototype.jobBenefits = null;
    /**
     *  Schema.org/datePosted
     *  Publication date for the job posting.
     * 
     *  @property datePosted
     *  @type Date
     */
    prototype.datePosted = null;
    /**
     *  Schema.org/skills
     *  Skills required to fulfill this role.
     * 
     *  @property skills
     *  @type Text
     */
    prototype.skills = null;
    /**
     *  Schema.org/incentives
     *  Description of bonus and commission compensation aspects of the job.
     * 
     *  @property incentives
     *  @type Text
     */
    prototype.incentives = null;
    /**
     *  Schema.org/educationRequirements
     *  Educational background needed for the position.
     * 
     *  @property educationRequirements
     *  @type Text
     */
    prototype.educationRequirements = null;
    /**
     *  Schema.org/responsibilities
     *  Responsibilities associated with this role.
     * 
     *  @property responsibilities
     *  @type Text
     */
    prototype.responsibilities = null;
    /**
     *  Schema.org/baseSalary
     *  The base salary of the job or of an employee in an EmployeeRole.
     * 
     *  @property baseSalary
     *  @type MonetaryAmount
     */
    prototype.baseSalary = null;
    /**
     *  Schema.org/validThrough
     *  The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.
     * 
     *  @property validThrough
     *  @type DateTime
     */
    prototype.validThrough = null;
    /**
     *  Schema.org/hiringOrganization
     *  Organization offering the job position.
     * 
     *  @property hiringOrganization
     *  @type Organization
     */
    prototype.hiringOrganization = null;
    /**
     *  Schema.org/specialCommitments
     *  Any special commitments associated with this job posting. Valid entries include VeteranCommit, MilitarySpouseCommit, etc.
     * 
     *  @property specialCommitments
     *  @type Text
     */
    prototype.specialCommitments = null;
    /**
     *  Schema.org/occupationalCategory
     *  Category or categories describing the job. Use BLS O*NET-SOC taxonomy: http://www.onetcenter.org/taxonomy.html. Ideally includes textual label and formal code, with the property repeated for each applicable value.
     * 
     *  @property occupationalCategory
     *  @type Text
     */
    prototype.occupationalCategory = null;
    /**
     *  Schema.org/experienceRequirements
     *  Description of skills and experience needed for the position.
     * 
     *  @property experienceRequirements
     *  @type Text
     */
    prototype.experienceRequirements = null;
    /**
     *  Schema.org/employmentType
     *  Type of employment (e.g. full-time, part-time, contract, temporary, seasonal, internship).
     * 
     *  @property employmentType
     *  @type Text
     */
    prototype.employmentType = null;
    /**
     *  Schema.org/jobLocation
     *  A (typically single) geographic location associated with the job position.
     * 
     *  @property jobLocation
     *  @type Place
     */
    prototype.jobLocation = null;
    /**
     *  Schema.org/title
     *  The title of the job.
     * 
     *  @property title
     *  @type Text
     */
    prototype.title = null;
    /**
     *  Schema.org/industry
     *  The industry associated with the job position.
     * 
     *  @property industry
     *  @type Text
     */
    prototype.industry = null;
}, {baseSalary: "MonetaryAmount", hiringOrganization: "Organization", jobLocation: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Demand
 *  A demand entity represents the public, not necessarily binding, not necessarily exclusive, announcement by an organization or person to seek a certain type of goods or services. For describing demand using this type, the very same properties used for Offer apply.
 * 
 *  @author schema.org
 *  @class Demand
 *  @module org.schema
 *  @extends Intangible
 */
var Demand = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Demand";
};
Demand = stjs.extend(Demand, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/sku
     *  The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.
     * 
     *  @property sku
     *  @type Text
     */
    prototype.sku = null;
    /**
     *  Schema.org/availabilityStarts
     *  The beginning of the availability of the product or service included in the offer.
     * 
     *  @property availabilityStarts
     *  @type DateTime
     */
    prototype.availabilityStarts = null;
    /**
     *  Schema.org/availableDeliveryMethod
     *  The delivery method(s) available for this offer.
     * 
     *  @property availableDeliveryMethod
     *  @type DeliveryMethod
     */
    prototype.availableDeliveryMethod = null;
    /**
     *  Schema.org/mpn
     *  The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.
     * 
     *  @property mpn
     *  @type Text
     */
    prototype.mpn = null;
    /**
     *  Schema.org/serialNumber
     *  The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.
     * 
     *  @property serialNumber
     *  @type Text
     */
    prototype.serialNumber = null;
    /**
     *  Schema.org/ineligibleRegion
     *  The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed.\n\nSee also [[eligibleRegion]].
     * 
     *  @property ineligibleRegion
     *  @type GeoShape
     */
    prototype.ineligibleRegion = null;
    /**
     *  Schema.org/gtin8
     *  The [GTIN-8](http://apps.gs1.org/GDD/glossary/Pages/GTIN-8.aspx) code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.
     * 
     *  @property gtin8
     *  @type Text
     */
    prototype.gtin8 = null;
    /**
     *  Schema.org/availability
     *  The availability of this item&#x2014;for example In stock, Out of stock, Pre-order, etc.
     * 
     *  @property availability
     *  @type ItemAvailability
     */
    prototype.availability = null;
    /**
     *  Schema.org/priceSpecification
     *  One or more detailed price specifications, indicating the unit price and delivery or payment charges.
     * 
     *  @property priceSpecification
     *  @type PriceSpecification
     */
    prototype.priceSpecification = null;
    /**
     *  Schema.org/inventoryLevel
     *  The current approximate inventory level for the item or items.
     * 
     *  @property inventoryLevel
     *  @type QuantitativeValue
     */
    prototype.inventoryLevel = null;
    /**
     *  Schema.org/eligibleTransactionVolume
     *  The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.
     * 
     *  @property eligibleTransactionVolume
     *  @type PriceSpecification
     */
    prototype.eligibleTransactionVolume = null;
    /**
     *  Schema.org/availableAtOrFrom
     *  The place(s) from which the offer can be obtained (e.g. store locations).
     * 
     *  @property availableAtOrFrom
     *  @type Place
     */
    prototype.availableAtOrFrom = null;
    /**
     *  Schema.org/warranty
     *  The warranty promise(s) included in the offer.
     * 
     *  @property warranty
     *  @type WarrantyPromise
     */
    prototype.warranty = null;
    /**
     *  Schema.org/includesObject
     *  This links to a node or nodes indicating the exact quantity of the products included in the offer.
     * 
     *  @property includesObject
     *  @type TypeAndQuantityNode
     */
    prototype.includesObject = null;
    /**
     *  Schema.org/eligibleQuantity
     *  The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.
     * 
     *  @property eligibleQuantity
     *  @type QuantitativeValue
     */
    prototype.eligibleQuantity = null;
    /**
     *  Schema.org/validFrom
     *  The date when the item becomes valid.
     * 
     *  @property validFrom
     *  @type DateTime
     */
    prototype.validFrom = null;
    /**
     *  Schema.org/validThrough
     *  The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.
     * 
     *  @property validThrough
     *  @type DateTime
     */
    prototype.validThrough = null;
    /**
     *  Schema.org/gtin14
     *  The [GTIN-14](http://apps.gs1.org/GDD/glossary/Pages/GTIN-14.aspx) code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.
     * 
     *  @property gtin14
     *  @type Text
     */
    prototype.gtin14 = null;
    /**
     *  Schema.org/gtin13
     *  The [GTIN-13](http://apps.gs1.org/GDD/glossary/Pages/GTIN-13.aspx) code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceeding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.
     * 
     *  @property gtin13
     *  @type Text
     */
    prototype.gtin13 = null;
    /**
     *  Schema.org/gtin12
     *  The [GTIN-12](http://apps.gs1.org/GDD/glossary/Pages/GTIN-12.aspx) code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.
     * 
     *  @property gtin12
     *  @type Text
     */
    prototype.gtin12 = null;
    /**
     *  Schema.org/seller
     *  An entity which offers (sells / leases / lends / loans) the services / goods.  A seller may also be a provider.
     * 
     *  @property seller
     *  @type Person
     */
    prototype.seller = null;
    /**
     *  Schema.org/deliveryLeadTime
     *  The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup.
     * 
     *  @property deliveryLeadTime
     *  @type QuantitativeValue
     */
    prototype.deliveryLeadTime = null;
    /**
     *  Schema.org/availabilityEnds
     *  The end of the availability of the product or service included in the offer.
     * 
     *  @property availabilityEnds
     *  @type DateTime
     */
    prototype.availabilityEnds = null;
    /**
     *  Schema.org/eligibleCustomerType
     *  The type(s) of customers for which the given offer is valid.
     * 
     *  @property eligibleCustomerType
     *  @type BusinessEntityType
     */
    prototype.eligibleCustomerType = null;
    /**
     *  Schema.org/itemCondition
     *  A predefined value from OfferItemCondition or a textual description of the condition of the product or service, or the products or services included in the offer.
     * 
     *  @property itemCondition
     *  @type OfferItemCondition
     */
    prototype.itemCondition = null;
    /**
     *  Schema.org/itemOffered
     *  The item being offered.
     * 
     *  @property itemOffered
     *  @type Service
     */
    prototype.itemOffered = null;
    /**
     *  Schema.org/eligibleDuration
     *  The duration for which the given offer is valid.
     * 
     *  @property eligibleDuration
     *  @type QuantitativeValue
     */
    prototype.eligibleDuration = null;
    /**
     *  Schema.org/acceptedPaymentMethod
     *  The payment method(s) accepted by seller for this offer.
     * 
     *  @property acceptedPaymentMethod
     *  @type LoanOrCredit
     */
    prototype.acceptedPaymentMethod = null;
    /**
     *  Schema.org/areaServed
     *  The geographic area where a service or offered item is provided.
     * 
     *  @property areaServed
     *  @type Place
     */
    prototype.areaServed = null;
    /**
     *  Schema.org/businessFunction
     *  The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.
     * 
     *  @property businessFunction
     *  @type BusinessFunction
     */
    prototype.businessFunction = null;
    /**
     *  Schema.org/eligibleRegion
     *  The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid.\n\nSee also [[ineligibleRegion]].
     * 
     *  @property eligibleRegion
     *  @type Text
     */
    prototype.eligibleRegion = null;
    /**
     *  Schema.org/advanceBookingRequirement
     *  The amount of time that is required between accepting the offer and the actual usage of the resource or service.
     * 
     *  @property advanceBookingRequirement
     *  @type QuantitativeValue
     */
    prototype.advanceBookingRequirement = null;
}, {availableDeliveryMethod: "DeliveryMethod", ineligibleRegion: "GeoShape", availability: "ItemAvailability", priceSpecification: "PriceSpecification", inventoryLevel: "QuantitativeValue", eligibleTransactionVolume: "PriceSpecification", availableAtOrFrom: "Place", warranty: "WarrantyPromise", includesObject: "TypeAndQuantityNode", eligibleQuantity: "QuantitativeValue", seller: "Person", deliveryLeadTime: "QuantitativeValue", eligibleCustomerType: "BusinessEntityType", itemCondition: "OfferItemCondition", itemOffered: "Service", eligibleDuration: "QuantitativeValue", acceptedPaymentMethod: "LoanOrCredit", areaServed: "Place", businessFunction: "BusinessFunction", advanceBookingRequirement: "QuantitativeValue", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BedDetails
 *  An entity holding detailed information about the available bed types, e.g. the quantity of twin beds for a hotel room. For the single case of just one bed of a certain type, you can use bed directly with a text. See also [[BedType]] (under development).
 * 
 *  @author schema.org
 *  @class BedDetails
 *  @module org.schema
 *  @extends Intangible
 */
var BedDetails = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "BedDetails";
};
BedDetails = stjs.extend(BedDetails, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/numberOfBeds
     *  The quantity of the given bed type available in the HotelRoom, Suite, House, or Apartment.
     * 
     *  @property numberOfBeds
     *  @type Number
     */
    prototype.numberOfBeds = null;
    /**
     *  Schema.org/typeOfBed
     *  The type of bed to which the BedDetail refers, i.e. the type of bed available in the quantity indicated by quantity.
     * 
     *  @property typeOfBed
     *  @type Text
     */
    prototype.typeOfBed = null;
}, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Language
 *  Natural languages such as Spanish, Tamil, Hindi, English, etc. Formal language code tags expressed in [BCP 47](https://en.wikipedia.org/wiki/IETF_language_tag) can be used via the [[alternateName]] property. The Language type previously also covered programming languages such as Scheme and Lisp, which are now best represented using [[ComputerLanguage]].
 * 
 *  @author schema.org
 *  @class Language
 *  @module org.schema
 *  @extends Intangible
 */
var Language = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Language";
};
Language = stjs.extend(Language, Intangible, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Quantity
 *  Quantities such as distance, time, mass, weight, etc. Particular instances of say Mass are entities like '3 Kg' or '4 milligrams'.
 * 
 *  @author schema.org
 *  @class Quantity
 *  @module org.schema
 *  @extends Intangible
 */
var Quantity = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Quantity";
};
Quantity = stjs.extend(Quantity, Intangible, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DigitalDocumentPermission
 *  A permission for a particular person or group to access a particular file.
 * 
 *  @author schema.org
 *  @class DigitalDocumentPermission
 *  @module org.schema
 *  @extends Intangible
 */
var DigitalDocumentPermission = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "DigitalDocumentPermission";
};
DigitalDocumentPermission = stjs.extend(DigitalDocumentPermission, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/grantee
     *  The person, organization, contact point, or audience that has been granted this permission.
     * 
     *  @property grantee
     *  @type ContactPoint
     */
    prototype.grantee = null;
    /**
     *  Schema.org/permissionType
     *  The type of permission granted the person, organization, or audience.
     * 
     *  @property permissionType
     *  @type DigitalDocumentPermissionType
     */
    prototype.permissionType = null;
}, {grantee: "ContactPoint", permissionType: "DigitalDocumentPermissionType", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/OrderItem
 *  An order item is a line of an order. It includes the quantity and shipping details of a bought offer.
 * 
 *  @author schema.org
 *  @class OrderItem
 *  @module org.schema
 *  @extends Intangible
 */
var OrderItem = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "OrderItem";
};
OrderItem = stjs.extend(OrderItem, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/orderItemStatus
     *  The current status of the order item.
     * 
     *  @property orderItemStatus
     *  @type OrderStatus
     */
    prototype.orderItemStatus = null;
    /**
     *  Schema.org/orderQuantity
     *  The number of the item ordered. If the property is not set, assume the quantity is one.
     * 
     *  @property orderQuantity
     *  @type Number
     */
    prototype.orderQuantity = null;
    /**
     *  Schema.org/orderedItem
     *  The item ordered.
     * 
     *  @property orderedItem
     *  @type Product
     */
    prototype.orderedItem = null;
    /**
     *  Schema.org/orderDelivery
     *  The delivery of the parcel related to this order or order item.
     * 
     *  @property orderDelivery
     *  @type ParcelDelivery
     */
    prototype.orderDelivery = null;
    /**
     *  Schema.org/orderItemNumber
     *  The identifier of the order item.
     * 
     *  @property orderItemNumber
     *  @type Text
     */
    prototype.orderItemNumber = null;
}, {orderItemStatus: "OrderStatus", orderedItem: "Product", orderDelivery: "ParcelDelivery", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/EntryPoint
 *  An entry point, within some Web-based protocol.
 * 
 *  @author schema.org
 *  @class EntryPoint
 *  @module org.schema
 *  @extends Intangible
 */
var EntryPoint = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "EntryPoint";
};
EntryPoint = stjs.extend(EntryPoint, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/urlTemplate
     *  An url template (RFC6570) that will be used to construct the target of the execution of the action.
     * 
     *  @property urlTemplate
     *  @type Text
     */
    prototype.urlTemplate = null;
    /**
     *  Schema.org/actionApplication
     *  An application that can complete the request.
     * 
     *  @property actionApplication
     *  @type SoftwareApplication
     */
    prototype.actionApplication = null;
    /**
     *  Schema.org/application
     *  An application that can complete the request.
     * 
     *  @property application
     *  @type SoftwareApplication
     */
    prototype.application = null;
    /**
     *  Schema.org/actionPlatform
     *  The high level platform(s) where the Action can be performed for the given URL. To specify a specific application or operating system instance, use actionApplication.
     * 
     *  @property actionPlatform
     *  @type Text
     */
    prototype.actionPlatform = null;
    /**
     *  Schema.org/httpMethod
     *  An HTTP method that specifies the appropriate HTTP method for a request to an HTTP EntryPoint. Values are capitalized strings as used in HTTP.
     * 
     *  @property httpMethod
     *  @type Text
     */
    prototype.httpMethod = null;
    /**
     *  Schema.org/encodingType
     *  The supported encoding type(s) for an EntryPoint request.
     * 
     *  @property encodingType
     *  @type Text
     */
    prototype.encodingType = null;
    /**
     *  Schema.org/contentType
     *  The supported content type(s) for an EntryPoint response.
     * 
     *  @property contentType
     *  @type Text
     */
    prototype.contentType = null;
}, {actionApplication: "SoftwareApplication", application: "SoftwareApplication", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Invoice
 *  A statement of the money due for goods or services; a bill.
 * 
 *  @author schema.org
 *  @class Invoice
 *  @module org.schema
 *  @extends Intangible
 */
var Invoice = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Invoice";
};
Invoice = stjs.extend(Invoice, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/provider
     *  The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.
     * 
     *  @property provider
     *  @type Person
     */
    prototype.provider = null;
    /**
     *  Schema.org/paymentDue
     *  The date that payment is due.
     * 
     *  @property paymentDue
     *  @type DateTime
     */
    prototype.paymentDue = null;
    /**
     *  Schema.org/billingPeriod
     *  The time interval used to compute the invoice.
     * 
     *  @property billingPeriod
     *  @type Duration
     */
    prototype.billingPeriod = null;
    /**
     *  Schema.org/confirmationNumber
     *  A number that confirms the given order or payment has been received.
     * 
     *  @property confirmationNumber
     *  @type Text
     */
    prototype.confirmationNumber = null;
    /**
     *  Schema.org/scheduledPaymentDate
     *  The date the invoice is scheduled to be paid.
     * 
     *  @property scheduledPaymentDate
     *  @type Date
     */
    prototype.scheduledPaymentDate = null;
    /**
     *  Schema.org/customer
     *  Party placing the order or paying the invoice.
     * 
     *  @property customer
     *  @type Organization
     */
    prototype.customer = null;
    /**
     *  Schema.org/category
     *  A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.
     * 
     *  @property category
     *  @type Text
     */
    prototype.category = null;
    /**
     *  Schema.org/paymentStatus
     *  The status of payment; whether the invoice has been paid or not.
     * 
     *  @property paymentStatus
     *  @type PaymentStatusType
     */
    prototype.paymentStatus = null;
    /**
     *  Schema.org/broker
     *  An entity that arranges for an exchange between a buyer and a seller.  In most cases a broker never acquires or releases ownership of a product or service involved in an exchange.  If it is not clear whether an entity is a broker, seller, or buyer, the latter two terms are preferred.
     * 
     *  @property broker
     *  @type Person
     */
    prototype.broker = null;
    /**
     *  Schema.org/paymentMethod
     *  The name of the credit card or other method of payment for the order.
     * 
     *  @property paymentMethod
     *  @type PaymentMethod
     */
    prototype.paymentMethod = null;
    /**
     *  Schema.org/paymentMethodId
     *  An identifier for the method of payment used (e.g. the last 4 digits of the credit card).
     * 
     *  @property paymentMethodId
     *  @type Text
     */
    prototype.paymentMethodId = null;
    /**
     *  Schema.org/minimumPaymentDue
     *  The minimum payment required at this time.
     * 
     *  @property minimumPaymentDue
     *  @type MonetaryAmount
     */
    prototype.minimumPaymentDue = null;
    /**
     *  Schema.org/totalPaymentDue
     *  The total amount due.
     * 
     *  @property totalPaymentDue
     *  @type MonetaryAmount
     */
    prototype.totalPaymentDue = null;
    /**
     *  Schema.org/accountId
     *  The identifier for the account the payment will be applied to.
     * 
     *  @property accountId
     *  @type Text
     */
    prototype.accountId = null;
    /**
     *  Schema.org/referencesOrder
     *  The Order(s) related to this Invoice. One or more Orders may be combined into a single Invoice.
     * 
     *  @property referencesOrder
     *  @type Order
     */
    prototype.referencesOrder = null;
    /**
     *  Schema.org/paymentDueDate
     *  The date that payment is due.
     * 
     *  @property paymentDueDate
     *  @type DateTime
     */
    prototype.paymentDueDate = null;
}, {provider: "Person", billingPeriod: "Duration", customer: "Organization", paymentStatus: "PaymentStatusType", broker: "Person", paymentMethod: "PaymentMethod", minimumPaymentDue: "MonetaryAmount", totalPaymentDue: "MonetaryAmount", referencesOrder: "Order", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/StructuredValue
 *  Structured values are used when the value of a property has a more complex structure than simply being a textual value or a reference to another thing.
 * 
 *  @author schema.org
 *  @class StructuredValue
 *  @module org.schema
 *  @extends Intangible
 */
var StructuredValue = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "StructuredValue";
};
StructuredValue = stjs.extend(StructuredValue, Intangible, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Flight
 *  An airline flight.
 * 
 *  @author schema.org
 *  @class Flight
 *  @module org.schema
 *  @extends Intangible
 */
var Flight = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Flight";
};
Flight = stjs.extend(Flight, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/arrivalAirport
     *  The airport where the flight terminates.
     * 
     *  @property arrivalAirport
     *  @type Airport
     */
    prototype.arrivalAirport = null;
    /**
     *  Schema.org/provider
     *  The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.
     * 
     *  @property provider
     *  @type Person
     */
    prototype.provider = null;
    /**
     *  Schema.org/arrivalGate
     *  Identifier of the flight's arrival gate.
     * 
     *  @property arrivalGate
     *  @type Text
     */
    prototype.arrivalGate = null;
    /**
     *  Schema.org/flightNumber
     *  The unique identifier for a flight including the airline IATA code. For example, if describing United flight 110, where the IATA code for United is 'UA', the flightNumber is 'UA110'.
     * 
     *  @property flightNumber
     *  @type Text
     */
    prototype.flightNumber = null;
    /**
     *  Schema.org/carrier
     *  'carrier' is an out-dated term indicating the 'provider' for parcel delivery and flights.
     * 
     *  @property carrier
     *  @type Organization
     */
    prototype.carrier = null;
    /**
     *  Schema.org/departureAirport
     *  The airport where the flight originates.
     * 
     *  @property departureAirport
     *  @type Airport
     */
    prototype.departureAirport = null;
    /**
     *  Schema.org/boardingPolicy
     *  The type of boarding policy used by the airline (e.g. zone-based or group-based).
     * 
     *  @property boardingPolicy
     *  @type BoardingPolicyType
     */
    prototype.boardingPolicy = null;
    /**
     *  Schema.org/aircraft
     *  The kind of aircraft (e.g., "Boeing 747").
     * 
     *  @property aircraft
     *  @type Vehicle
     */
    prototype.aircraft = null;
    /**
     *  Schema.org/arrivalTime
     *  The expected arrival time.
     * 
     *  @property arrivalTime
     *  @type DateTime
     */
    prototype.arrivalTime = null;
    /**
     *  Schema.org/seller
     *  An entity which offers (sells / leases / lends / loans) the services / goods.  A seller may also be a provider.
     * 
     *  @property seller
     *  @type Person
     */
    prototype.seller = null;
    /**
     *  Schema.org/webCheckinTime
     *  The time when a passenger can check into the flight online.
     * 
     *  @property webCheckinTime
     *  @type DateTime
     */
    prototype.webCheckinTime = null;
    /**
     *  Schema.org/mealService
     *  Description of the meals that will be provided or available for purchase.
     * 
     *  @property mealService
     *  @type Text
     */
    prototype.mealService = null;
    /**
     *  Schema.org/departureGate
     *  Identifier of the flight's departure gate.
     * 
     *  @property departureGate
     *  @type Text
     */
    prototype.departureGate = null;
    /**
     *  Schema.org/departureTerminal
     *  Identifier of the flight's departure terminal.
     * 
     *  @property departureTerminal
     *  @type Text
     */
    prototype.departureTerminal = null;
    /**
     *  Schema.org/estimatedFlightDuration
     *  The estimated time the flight will take.
     * 
     *  @property estimatedFlightDuration
     *  @type Text
     */
    prototype.estimatedFlightDuration = null;
    /**
     *  Schema.org/flightDistance
     *  The distance of the flight.
     * 
     *  @property flightDistance
     *  @type Distance
     */
    prototype.flightDistance = null;
    /**
     *  Schema.org/arrivalTerminal
     *  Identifier of the flight's arrival terminal.
     * 
     *  @property arrivalTerminal
     *  @type Text
     */
    prototype.arrivalTerminal = null;
    /**
     *  Schema.org/departureTime
     *  The expected departure time.
     * 
     *  @property departureTime
     *  @type DateTime
     */
    prototype.departureTime = null;
}, {arrivalAirport: "Airport", provider: "Person", carrier: "Organization", departureAirport: "Airport", boardingPolicy: "BoardingPolicyType", aircraft: "Vehicle", seller: "Person", flightDistance: "Distance", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Rating
 *  A rating is an evaluation on a numeric scale, such as 1 to 5 stars.
 * 
 *  @author schema.org
 *  @class Rating
 *  @module org.schema
 *  @extends Intangible
 */
var Rating = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Rating";
};
Rating = stjs.extend(Rating, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/ratingValue
     *  The rating for the content.
     * 
     *  @property ratingValue
     *  @type Number
     */
    prototype.ratingValue = null;
    /**
     *  Schema.org/bestRating
     *  The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.
     * 
     *  @property bestRating
     *  @type Number
     */
    prototype.bestRating = null;
    /**
     *  Schema.org/author
     *  The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.
     * 
     *  @property author
     *  @type Person
     */
    prototype.author = null;
    /**
     *  Schema.org/worstRating
     *  The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed.
     * 
     *  @property worstRating
     *  @type Text
     */
    prototype.worstRating = null;
}, {author: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Order
 *  An order is a confirmation of a transaction (a receipt), which can contain multiple line items, each represented by an Offer that has been accepted by the customer.
 * 
 *  @author schema.org
 *  @class Order
 *  @module org.schema
 *  @extends Intangible
 */
var Order = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Order";
};
Order = stjs.extend(Order, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/orderDate
     *  Date order was placed.
     * 
     *  @property orderDate
     *  @type DateTime
     */
    prototype.orderDate = null;
    /**
     *  Schema.org/paymentDue
     *  The date that payment is due.
     * 
     *  @property paymentDue
     *  @type DateTime
     */
    prototype.paymentDue = null;
    /**
     *  Schema.org/orderNumber
     *  The identifier of the transaction.
     * 
     *  @property orderNumber
     *  @type Text
     */
    prototype.orderNumber = null;
    /**
     *  Schema.org/paymentUrl
     *  The URL for sending a payment.
     * 
     *  @property paymentUrl
     *  @type URL
     */
    prototype.paymentUrl = null;
    /**
     *  Schema.org/orderStatus
     *  The current status of the order.
     * 
     *  @property orderStatus
     *  @type OrderStatus
     */
    prototype.orderStatus = null;
    /**
     *  Schema.org/billingAddress
     *  The billing address for the order.
     * 
     *  @property billingAddress
     *  @type PostalAddress
     */
    prototype.billingAddress = null;
    /**
     *  Schema.org/partOfInvoice
     *  The order is being paid as part of the referenced Invoice.
     * 
     *  @property partOfInvoice
     *  @type Invoice
     */
    prototype.partOfInvoice = null;
    /**
     *  Schema.org/confirmationNumber
     *  A number that confirms the given order or payment has been received.
     * 
     *  @property confirmationNumber
     *  @type Text
     */
    prototype.confirmationNumber = null;
    /**
     *  Schema.org/customer
     *  Party placing the order or paying the invoice.
     * 
     *  @property customer
     *  @type Organization
     */
    prototype.customer = null;
    /**
     *  Schema.org/merchant
     *  'merchant' is an out-dated term for 'seller'.
     * 
     *  @property merchant
     *  @type Person
     */
    prototype.merchant = null;
    /**
     *  Schema.org/broker
     *  An entity that arranges for an exchange between a buyer and a seller.  In most cases a broker never acquires or releases ownership of a product or service involved in an exchange.  If it is not clear whether an entity is a broker, seller, or buyer, the latter two terms are preferred.
     * 
     *  @property broker
     *  @type Person
     */
    prototype.broker = null;
    /**
     *  Schema.org/orderedItem
     *  The item ordered.
     * 
     *  @property orderedItem
     *  @type Product
     */
    prototype.orderedItem = null;
    /**
     *  Schema.org/isGift
     *  Was the offer accepted as a gift for someone other than the buyer.
     * 
     *  @property isGift
     *  @type Boolean
     */
    prototype.isGift = null;
    /**
     *  Schema.org/paymentMethod
     *  The name of the credit card or other method of payment for the order.
     * 
     *  @property paymentMethod
     *  @type PaymentMethod
     */
    prototype.paymentMethod = null;
    /**
     *  Schema.org/seller
     *  An entity which offers (sells / leases / lends / loans) the services / goods.  A seller may also be a provider.
     * 
     *  @property seller
     *  @type Person
     */
    prototype.seller = null;
    /**
     *  Schema.org/paymentMethodId
     *  An identifier for the method of payment used (e.g. the last 4 digits of the credit card).
     * 
     *  @property paymentMethodId
     *  @type Text
     */
    prototype.paymentMethodId = null;
    /**
     *  Schema.org/discount
     *  Any discount applied (to an Order).
     * 
     *  @property discount
     *  @type Number
     */
    prototype.discount = null;
    /**
     *  Schema.org/orderDelivery
     *  The delivery of the parcel related to this order or order item.
     * 
     *  @property orderDelivery
     *  @type ParcelDelivery
     */
    prototype.orderDelivery = null;
    /**
     *  Schema.org/acceptedOffer
     *  The offer(s) -- e.g., product, quantity and price combinations -- included in the order.
     * 
     *  @property acceptedOffer
     *  @type Offer
     */
    prototype.acceptedOffer = null;
    /**
     *  Schema.org/discountCurrency
     *  The currency (in 3-letter ISO 4217 format) of the discount.
     * 
     *  @property discountCurrency
     *  @type Text
     */
    prototype.discountCurrency = null;
    /**
     *  Schema.org/paymentDueDate
     *  The date that payment is due.
     * 
     *  @property paymentDueDate
     *  @type DateTime
     */
    prototype.paymentDueDate = null;
    /**
     *  Schema.org/discountCode
     *  Code used to redeem a discount.
     * 
     *  @property discountCode
     *  @type Text
     */
    prototype.discountCode = null;
}, {orderStatus: "OrderStatus", billingAddress: "PostalAddress", partOfInvoice: "Invoice", customer: "Organization", merchant: "Person", broker: "Person", orderedItem: "Product", paymentMethod: "PaymentMethod", seller: "Person", orderDelivery: "ParcelDelivery", acceptedOffer: "Offer", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Audience
 *  Intended audience for an item, i.e. the group for whom the item was created.
 * 
 *  @author schema.org
 *  @class Audience
 *  @module org.schema
 *  @extends Intangible
 */
var Audience = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Audience";
};
Audience = stjs.extend(Audience, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/audienceType
     *  The target group associated with a given audience (e.g. veterans, car owners, musicians, etc.).
     * 
     *  @property audienceType
     *  @type Text
     */
    prototype.audienceType = null;
    /**
     *  Schema.org/geographicArea
     *  The geographic area associated with the audience.
     * 
     *  @property geographicArea
     *  @type AdministrativeArea
     */
    prototype.geographicArea = null;
}, {geographicArea: "AdministrativeArea", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ComputerLanguage
 *  This type covers computer programming languages such as Scheme and Lisp, as well as other language-like computer representations. Natural languages are best represented with the [[Language]] type.
 * 
 *  @author schema.org
 *  @class ComputerLanguage
 *  @module org.schema
 *  @extends Intangible
 */
var ComputerLanguage = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "ComputerLanguage";
};
ComputerLanguage = stjs.extend(ComputerLanguage, Intangible, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Seat
 *  Used to describe a seat, such as a reserved seat in an event reservation.
 * 
 *  @author schema.org
 *  @class Seat
 *  @module org.schema
 *  @extends Intangible
 */
var Seat = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Seat";
};
Seat = stjs.extend(Seat, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/seatingType
     *  The type/class of the seat.
     * 
     *  @property seatingType
     *  @type Text
     */
    prototype.seatingType = null;
    /**
     *  Schema.org/seatSection
     *  The section location of the reserved seat (e.g. Orchestra).
     * 
     *  @property seatSection
     *  @type Text
     */
    prototype.seatSection = null;
    /**
     *  Schema.org/seatRow
     *  The row location of the reserved seat (e.g., B).
     * 
     *  @property seatRow
     *  @type Text
     */
    prototype.seatRow = null;
    /**
     *  Schema.org/seatNumber
     *  The location of the reserved seat (e.g., 27).
     * 
     *  @property seatNumber
     *  @type Text
     */
    prototype.seatNumber = null;
}, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ItemList
 *  A list of items of any sort&#x2014;for example, Top 10 Movies About Weathermen, or Top 100 Party Songs. Not to be confused with HTML lists, which are often used only for formatting.
 * 
 *  @author schema.org
 *  @class ItemList
 *  @module org.schema
 *  @extends Intangible
 */
var ItemList = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "ItemList";
};
ItemList = stjs.extend(ItemList, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/itemListElement
     *  For itemListElement values, you can use simple strings (e.g. "Peter", "Paul", "Mary"), existing entities, or use ListItem.\n\nText values are best if the elements in the list are plain strings. Existing entities are best for a simple, unordered list of existing things in your data. ListItem is used with ordered lists when you want to provide additional context about the element in that list or when the same item might be in different places in different lists.\n\nNote: The order of elements in your mark-up is not sufficient for indicating the order or elements.  Use ListItem with a 'position' property in such cases.
     * 
     *  @property itemListElement
     *  @type ListItem
     */
    prototype.itemListElement = null;
    /**
     *  Schema.org/itemListOrder
     *  Type of ordering (e.g. Ascending, Descending, Unordered).
     * 
     *  @property itemListOrder
     *  @type Text
     */
    prototype.itemListOrder = null;
    /**
     *  Schema.org/numberOfItems
     *  The number of items in an ItemList. Note that some descriptions might not fully describe all items in a list (e.g., multi-page pagination); in such cases, the numberOfItems would be for the entire list.
     * 
     *  @property numberOfItems
     *  @type Integer
     */
    prototype.numberOfItems = null;
}, {itemListElement: "ListItem", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ParcelDelivery
 *  The delivery of a parcel either via the postal service or a commercial service.
 * 
 *  @author schema.org
 *  @class ParcelDelivery
 *  @module org.schema
 *  @extends Intangible
 */
var ParcelDelivery = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "ParcelDelivery";
};
ParcelDelivery = stjs.extend(ParcelDelivery, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/provider
     *  The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.
     * 
     *  @property provider
     *  @type Person
     */
    prototype.provider = null;
    /**
     *  Schema.org/trackingUrl
     *  Tracking url for the parcel delivery.
     * 
     *  @property trackingUrl
     *  @type URL
     */
    prototype.trackingUrl = null;
    /**
     *  Schema.org/deliveryAddress
     *  Destination address.
     * 
     *  @property deliveryAddress
     *  @type PostalAddress
     */
    prototype.deliveryAddress = null;
    /**
     *  Schema.org/trackingNumber
     *  Shipper tracking number.
     * 
     *  @property trackingNumber
     *  @type Text
     */
    prototype.trackingNumber = null;
    /**
     *  Schema.org/hasDeliveryMethod
     *  Method used for delivery or shipping.
     * 
     *  @property hasDeliveryMethod
     *  @type DeliveryMethod
     */
    prototype.hasDeliveryMethod = null;
    /**
     *  Schema.org/deliveryStatus
     *  New entry added as the package passes through each leg of its journey (from shipment to final delivery).
     * 
     *  @property deliveryStatus
     *  @type DeliveryEvent
     */
    prototype.deliveryStatus = null;
    /**
     *  Schema.org/carrier
     *  'carrier' is an out-dated term indicating the 'provider' for parcel delivery and flights.
     * 
     *  @property carrier
     *  @type Organization
     */
    prototype.carrier = null;
    /**
     *  Schema.org/originAddress
     *  Shipper's address.
     * 
     *  @property originAddress
     *  @type PostalAddress
     */
    prototype.originAddress = null;
    /**
     *  Schema.org/itemShipped
     *  Item(s) being shipped.
     * 
     *  @property itemShipped
     *  @type Product
     */
    prototype.itemShipped = null;
    /**
     *  Schema.org/partOfOrder
     *  The overall order the items in this delivery were included in.
     * 
     *  @property partOfOrder
     *  @type Order
     */
    prototype.partOfOrder = null;
    /**
     *  Schema.org/expectedArrivalFrom
     *  The earliest date the package may arrive.
     * 
     *  @property expectedArrivalFrom
     *  @type DateTime
     */
    prototype.expectedArrivalFrom = null;
    /**
     *  Schema.org/expectedArrivalUntil
     *  The latest date the package may arrive.
     * 
     *  @property expectedArrivalUntil
     *  @type DateTime
     */
    prototype.expectedArrivalUntil = null;
}, {provider: "Person", deliveryAddress: "PostalAddress", hasDeliveryMethod: "DeliveryMethod", deliveryStatus: "DeliveryEvent", carrier: "Organization", originAddress: "PostalAddress", itemShipped: "Product", partOfOrder: "Order", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Role
 *  Represents additional information about a relationship or property. For example a Role can be used to say that a 'member' role linking some SportsTeam to a player occurred during a particular time period. Or that a Person's 'actor' role in a Movie was for some particular characterName. Such properties can be attached to a Role entity, which is then associated with the main entities using ordinary properties like 'member' or 'actor'.\n\nSee also [blog post](http://blog.schema.org/2014/06/introducing-role.html).
 * 
 *  @author schema.org
 *  @class Role
 *  @module org.schema
 *  @extends Intangible
 */
var Role = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Role";
};
Role = stjs.extend(Role, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/endDate
     *  The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).
     * 
     *  @property endDate
     *  @type DateTime
     */
    prototype.endDate = null;
    /**
     *  Schema.org/startDate
     *  The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).
     * 
     *  @property startDate
     *  @type Date
     */
    prototype.startDate = null;
    /**
     *  Schema.org/namedPosition
     *  A position played, performed or filled by a person or organization, as part of an organization. For example, an athlete in a SportsTeam might play in the position named 'Quarterback'.
     * 
     *  @property namedPosition
     *  @type Text
     */
    prototype.namedPosition = null;
    /**
     *  Schema.org/roleName
     *  A role played, performed or filled by a person or organization. For example, the team of creators for a comic book might fill the roles named 'inker', 'penciller', and 'letterer'; or an athlete in a SportsTeam might play in the position named 'Quarterback'.
     * 
     *  @property roleName
     *  @type Text
     */
    prototype.roleName = null;
}, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/AlignmentObject
 *  An intangible item that describes an alignment between a learning resource and a node in an educational framework.
 * 
 *  @author schema.org
 *  @class AlignmentObject
 *  @module org.schema
 *  @extends Intangible
 */
var AlignmentObject = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "AlignmentObject";
};
AlignmentObject = stjs.extend(AlignmentObject, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/targetDescription
     *  The description of a node in an established educational framework.
     * 
     *  @property targetDescription
     *  @type Text
     */
    prototype.targetDescription = null;
    /**
     *  Schema.org/alignmentType
     *  A category of alignment between the learning resource and the framework node. Recommended values include: 'assesses', 'teaches', 'requires', 'textComplexity', 'readingLevel', 'educationalSubject', and 'educationalLevel'.
     * 
     *  @property alignmentType
     *  @type Text
     */
    prototype.alignmentType = null;
    /**
     *  Schema.org/targetUrl
     *  The URL of a node in an established educational framework.
     * 
     *  @property targetUrl
     *  @type URL
     */
    prototype.targetUrl = null;
    /**
     *  Schema.org/targetName
     *  The name of a node in an established educational framework.
     * 
     *  @property targetName
     *  @type Text
     */
    prototype.targetName = null;
    /**
     *  Schema.org/educationalFramework
     *  The framework to which the resource being described is aligned.
     * 
     *  @property educationalFramework
     *  @type Text
     */
    prototype.educationalFramework = null;
}, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Enumeration
 *  Lists or enumerations—for example, a list of cuisines or music genres, etc.
 * 
 *  @author schema.org
 *  @class Enumeration
 *  @module org.schema
 *  @extends Intangible
 */
var Enumeration = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Enumeration";
};
Enumeration = stjs.extend(Enumeration, Intangible, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DataFeedItem
 *  A single item within a larger data feed.
 * 
 *  @author schema.org
 *  @class DataFeedItem
 *  @module org.schema
 *  @extends Intangible
 */
var DataFeedItem = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "DataFeedItem";
};
DataFeedItem = stjs.extend(DataFeedItem, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/dateModified
     *  The date on which the CreativeWork was most recently modified or when the item's entry was modified within a DataFeed.
     * 
     *  @property dateModified
     *  @type DateTime
     */
    prototype.dateModified = null;
    /**
     *  Schema.org/dateDeleted
     *  The datetime the item was removed from the DataFeed.
     * 
     *  @property dateDeleted
     *  @type DateTime
     */
    prototype.dateDeleted = null;
    /**
     *  Schema.org/dateCreated
     *  The date on which the CreativeWork was created or the item was added to a DataFeed.
     * 
     *  @property dateCreated
     *  @type Date
     */
    prototype.dateCreated = null;
    /**
     *  Schema.org/item
     *  An entity represented by an entry in a list or data feed (e.g. an 'artist' in a list of 'artists')’.
     * 
     *  @property item
     *  @type Thing
     */
    prototype.item = null;
}, {item: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BusTrip
 *  A trip on a commercial bus line.
 * 
 *  @author schema.org
 *  @class BusTrip
 *  @module org.schema
 *  @extends Intangible
 */
var BusTrip = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "BusTrip";
};
BusTrip = stjs.extend(BusTrip, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/provider
     *  The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.
     * 
     *  @property provider
     *  @type Person
     */
    prototype.provider = null;
    /**
     *  Schema.org/busName
     *  The name of the bus (e.g. Bolt Express).
     * 
     *  @property busName
     *  @type Text
     */
    prototype.busName = null;
    /**
     *  Schema.org/departureBusStop
     *  The stop or station from which the bus departs.
     * 
     *  @property departureBusStop
     *  @type BusStop
     */
    prototype.departureBusStop = null;
    /**
     *  Schema.org/arrivalBusStop
     *  The stop or station from which the bus arrives.
     * 
     *  @property arrivalBusStop
     *  @type BusStation
     */
    prototype.arrivalBusStop = null;
    /**
     *  Schema.org/arrivalTime
     *  The expected arrival time.
     * 
     *  @property arrivalTime
     *  @type DateTime
     */
    prototype.arrivalTime = null;
    /**
     *  Schema.org/busNumber
     *  The unique identifier for the bus.
     * 
     *  @property busNumber
     *  @type Text
     */
    prototype.busNumber = null;
    /**
     *  Schema.org/departureTime
     *  The expected departure time.
     * 
     *  @property departureTime
     *  @type DateTime
     */
    prototype.departureTime = null;
}, {provider: "Person", departureBusStop: "BusStop", arrivalBusStop: "BusStation", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ServiceChannel
 *  A means for accessing a service, e.g. a government office location, web site, or phone number.
 * 
 *  @author schema.org
 *  @class ServiceChannel
 *  @module org.schema
 *  @extends Intangible
 */
var ServiceChannel = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "ServiceChannel";
};
ServiceChannel = stjs.extend(ServiceChannel, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/providesService
     *  The service provided by this channel.
     * 
     *  @property providesService
     *  @type Service
     */
    prototype.providesService = null;
    /**
     *  Schema.org/serviceLocation
     *  The location (e.g. civic structure, local business, etc.) where a person can go to access the service.
     * 
     *  @property serviceLocation
     *  @type Place
     */
    prototype.serviceLocation = null;
    /**
     *  Schema.org/servicePostalAddress
     *  The address for accessing the service by mail.
     * 
     *  @property servicePostalAddress
     *  @type PostalAddress
     */
    prototype.servicePostalAddress = null;
    /**
     *  Schema.org/availableLanguage
     *  A language someone may use with the item. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]]
     * 
     *  @property availableLanguage
     *  @type Language
     */
    prototype.availableLanguage = null;
    /**
     *  Schema.org/serviceSmsNumber
     *  The number to access the service by text message.
     * 
     *  @property serviceSmsNumber
     *  @type ContactPoint
     */
    prototype.serviceSmsNumber = null;
    /**
     *  Schema.org/serviceUrl
     *  The website to access the service.
     * 
     *  @property serviceUrl
     *  @type URL
     */
    prototype.serviceUrl = null;
    /**
     *  Schema.org/servicePhone
     *  The phone number to use to access the service.
     * 
     *  @property servicePhone
     *  @type ContactPoint
     */
    prototype.servicePhone = null;
    /**
     *  Schema.org/processingTime
     *  Estimated processing time for the service using this channel.
     * 
     *  @property processingTime
     *  @type Duration
     */
    prototype.processingTime = null;
}, {providesService: "Service", serviceLocation: "Place", servicePostalAddress: "PostalAddress", availableLanguage: "Language", serviceSmsNumber: "ContactPoint", servicePhone: "ContactPoint", processingTime: "Duration", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ListItem
 *  An list item, e.g. a step in a checklist or how-to description.
 * 
 *  @author schema.org
 *  @class ListItem
 *  @module org.schema
 *  @extends Intangible
 */
var ListItem = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "ListItem";
};
ListItem = stjs.extend(ListItem, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/nextItem
     *  A link to the ListItem that follows the current one.
     * 
     *  @property nextItem
     *  @type ListItem
     */
    prototype.nextItem = null;
    /**
     *  Schema.org/position
     *  The position of an item in a series or sequence of items.
     * 
     *  @property position
     *  @type Integer
     */
    prototype.position = null;
    /**
     *  Schema.org/previousItem
     *  A link to the ListItem that preceeds the current one.
     * 
     *  @property previousItem
     *  @type ListItem
     */
    prototype.previousItem = null;
    /**
     *  Schema.org/item
     *  An entity represented by an entry in a list or data feed (e.g. an 'artist' in a list of 'artists')’.
     * 
     *  @property item
     *  @type Thing
     */
    prototype.item = null;
}, {nextItem: "ListItem", previousItem: "ListItem", item: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Service
 *  A service provided by an organization, e.g. delivery service, print services, etc.
 * 
 *  @author schema.org
 *  @class Service
 *  @module org.schema
 *  @extends Intangible
 */
var Service = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Service";
};
Service = stjs.extend(Service, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/serviceAudience
     *  The audience eligible for this service.
     * 
     *  @property serviceAudience
     *  @type Audience
     */
    prototype.serviceAudience = null;
    /**
     *  Schema.org/serviceArea
     *  The geographic area where the service is provided.
     * 
     *  @property serviceArea
     *  @type GeoShape
     */
    prototype.serviceArea = null;
    /**
     *  Schema.org/provider
     *  The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.
     * 
     *  @property provider
     *  @type Person
     */
    prototype.provider = null;
    /**
     *  Schema.org/audience
     *  An intended audience, i.e. a group for whom something was created.
     * 
     *  @property audience
     *  @type Audience
     */
    prototype.audience = null;
    /**
     *  Schema.org/hasOfferCatalog
     *  Indicates an OfferCatalog listing for this Organization, Person, or Service.
     * 
     *  @property hasOfferCatalog
     *  @type OfferCatalog
     */
    prototype.hasOfferCatalog = null;
    /**
     *  Schema.org/hoursAvailable
     *  The hours during which this service or contact is available.
     * 
     *  @property hoursAvailable
     *  @type OpeningHoursSpecification
     */
    prototype.hoursAvailable = null;
    /**
     *  Schema.org/providerMobility
     *  Indicates the mobility of a provided service (e.g. 'static', 'dynamic').
     * 
     *  @property providerMobility
     *  @type Text
     */
    prototype.providerMobility = null;
    /**
     *  Schema.org/aggregateRating
     *  The overall rating, based on a collection of reviews or ratings, of the item.
     * 
     *  @property aggregateRating
     *  @type AggregateRating
     */
    prototype.aggregateRating = null;
    /**
     *  Schema.org/offers
     *  An offer to provide this item&#x2014;for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event.
     * 
     *  @property offers
     *  @type Offer
     */
    prototype.offers = null;
    /**
     *  Schema.org/award
     *  An award won by or for this item.
     * 
     *  @property award
     *  @type Text
     */
    prototype.award = null;
    /**
     *  Schema.org/category
     *  A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.
     * 
     *  @property category
     *  @type Text
     */
    prototype.category = null;
    /**
     *  Schema.org/broker
     *  An entity that arranges for an exchange between a buyer and a seller.  In most cases a broker never acquires or releases ownership of a product or service involved in an exchange.  If it is not clear whether an entity is a broker, seller, or buyer, the latter two terms are preferred.
     * 
     *  @property broker
     *  @type Person
     */
    prototype.broker = null;
    /**
     *  Schema.org/serviceOutput
     *  The tangible thing generated by the service, e.g. a passport, permit, etc.
     * 
     *  @property serviceOutput
     *  @type Thing
     */
    prototype.serviceOutput = null;
    /**
     *  Schema.org/logo
     *  An associated logo.
     * 
     *  @property logo
     *  @type ImageObject
     */
    prototype.logo = null;
    /**
     *  Schema.org/isSimilarTo
     *  A pointer to another, functionally similar product (or multiple products).
     * 
     *  @property isSimilarTo
     *  @type Product
     */
    prototype.isSimilarTo = null;
    /**
     *  Schema.org/isRelatedTo
     *  A pointer to another, somehow related product (or multiple products).
     * 
     *  @property isRelatedTo
     *  @type Product
     */
    prototype.isRelatedTo = null;
    /**
     *  Schema.org/availableChannel
     *  A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).
     * 
     *  @property availableChannel
     *  @type ServiceChannel
     */
    prototype.availableChannel = null;
    /**
     *  Schema.org/review
     *  A review of the item.
     * 
     *  @property review
     *  @type Review
     */
    prototype.review = null;
    /**
     *  Schema.org/serviceType
     *  The type of service being offered, e.g. veterans' benefits, emergency relief, etc.
     * 
     *  @property serviceType
     *  @type Text
     */
    prototype.serviceType = null;
    /**
     *  Schema.org/produces
     *  The tangible thing generated by the service, e.g. a passport, permit, etc.
     * 
     *  @property produces
     *  @type Thing
     */
    prototype.produces = null;
    /**
     *  Schema.org/brand
     *  The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.
     * 
     *  @property brand
     *  @type Organization
     */
    prototype.brand = null;
    /**
     *  Schema.org/areaServed
     *  The geographic area where a service or offered item is provided.
     * 
     *  @property areaServed
     *  @type Place
     */
    prototype.areaServed = null;
}, {serviceAudience: "Audience", serviceArea: "GeoShape", provider: "Person", audience: "Audience", hasOfferCatalog: "OfferCatalog", hoursAvailable: "OpeningHoursSpecification", aggregateRating: "AggregateRating", offers: "Offer", broker: "Person", serviceOutput: "Thing", logo: "ImageObject", isSimilarTo: "Product", isRelatedTo: "Product", availableChannel: "ServiceChannel", review: "Review", produces: "Thing", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/GameServer
 *  Server that provides game interaction in a multiplayer game.
 * 
 *  @author schema.org
 *  @class GameServer
 *  @module org.schema
 *  @extends Intangible
 */
var GameServer = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "GameServer";
};
GameServer = stjs.extend(GameServer, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/game
     *  Video game which is played on this server.
     * 
     *  @property game
     *  @type VideoGame
     */
    prototype.game = null;
    /**
     *  Schema.org/playersOnline
     *  Number of players on the server.
     * 
     *  @property playersOnline
     *  @type Integer
     */
    prototype.playersOnline = null;
    /**
     *  Schema.org/serverStatus
     *  Status of a game server.
     * 
     *  @property serverStatus
     *  @type GameServerStatus
     */
    prototype.serverStatus = null;
}, {game: "VideoGame", serverStatus: "GameServerStatus", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TrainTrip
 *  A trip on a commercial train line.
 * 
 *  @author schema.org
 *  @class TrainTrip
 *  @module org.schema
 *  @extends Intangible
 */
var TrainTrip = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "TrainTrip";
};
TrainTrip = stjs.extend(TrainTrip, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/departureStation
     *  The station from which the train departs.
     * 
     *  @property departureStation
     *  @type TrainStation
     */
    prototype.departureStation = null;
    /**
     *  Schema.org/provider
     *  The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.
     * 
     *  @property provider
     *  @type Person
     */
    prototype.provider = null;
    /**
     *  Schema.org/arrivalPlatform
     *  The platform where the train arrives.
     * 
     *  @property arrivalPlatform
     *  @type Text
     */
    prototype.arrivalPlatform = null;
    /**
     *  Schema.org/departurePlatform
     *  The platform from which the train departs.
     * 
     *  @property departurePlatform
     *  @type Text
     */
    prototype.departurePlatform = null;
    /**
     *  Schema.org/trainName
     *  The name of the train (e.g. The Orient Express).
     * 
     *  @property trainName
     *  @type Text
     */
    prototype.trainName = null;
    /**
     *  Schema.org/trainNumber
     *  The unique identifier for the train.
     * 
     *  @property trainNumber
     *  @type Text
     */
    prototype.trainNumber = null;
    /**
     *  Schema.org/arrivalStation
     *  The station where the train trip ends.
     * 
     *  @property arrivalStation
     *  @type TrainStation
     */
    prototype.arrivalStation = null;
    /**
     *  Schema.org/arrivalTime
     *  The expected arrival time.
     * 
     *  @property arrivalTime
     *  @type DateTime
     */
    prototype.arrivalTime = null;
    /**
     *  Schema.org/departureTime
     *  The expected departure time.
     * 
     *  @property departureTime
     *  @type DateTime
     */
    prototype.departureTime = null;
}, {departureStation: "TrainStation", provider: "Person", arrivalStation: "TrainStation", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ProgramMembership
 *  Used to describe membership in a loyalty programs (e.g. "StarAliance"), traveler clubs (e.g. "AAA"), purchase clubs ("Safeway Club"), etc.
 * 
 *  @author schema.org
 *  @class ProgramMembership
 *  @module org.schema
 *  @extends Intangible
 */
var ProgramMembership = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "ProgramMembership";
};
ProgramMembership = stjs.extend(ProgramMembership, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/membershipNumber
     *  A unique identifier for the membership.
     * 
     *  @property membershipNumber
     *  @type Text
     */
    prototype.membershipNumber = null;
    /**
     *  Schema.org/members
     *  A member of this organization.
     * 
     *  @property members
     *  @type Organization
     */
    prototype.members = null;
    /**
     *  Schema.org/member
     *  A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.
     * 
     *  @property member
     *  @type Organization
     */
    prototype.member = null;
    /**
     *  Schema.org/hostingOrganization
     *  The organization (airline, travelers' club, etc.) the membership is made with.
     * 
     *  @property hostingOrganization
     *  @type Organization
     */
    prototype.hostingOrganization = null;
    /**
     *  Schema.org/programName
     *  The program providing the membership.
     * 
     *  @property programName
     *  @type Text
     */
    prototype.programName = null;
}, {members: "Organization", member: "Organization", hostingOrganization: "Organization", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PropertyValueSpecification
 *  A Property value specification.
 * 
 *  @author schema.org
 *  @class PropertyValueSpecification
 *  @module org.schema
 *  @extends Intangible
 */
var PropertyValueSpecification = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "PropertyValueSpecification";
};
PropertyValueSpecification = stjs.extend(PropertyValueSpecification, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/defaultValue
     *  The default value of the input.  For properties that expect a literal, the default is a literal value, for properties that expect an object, it's an ID reference to one of the current values.
     * 
     *  @property defaultValue
     *  @type Thing
     */
    prototype.defaultValue = null;
    /**
     *  Schema.org/minValue
     *  The lower value of some characteristic or property.
     * 
     *  @property minValue
     *  @type Number
     */
    prototype.minValue = null;
    /**
     *  Schema.org/valuePattern
     *  Specifies a regular expression for testing literal values according to the HTML spec.
     * 
     *  @property valuePattern
     *  @type Text
     */
    prototype.valuePattern = null;
    /**
     *  Schema.org/stepValue
     *  The stepValue attribute indicates the granularity that is expected (and required) of the value in a PropertyValueSpecification.
     * 
     *  @property stepValue
     *  @type Number
     */
    prototype.stepValue = null;
    /**
     *  Schema.org/valueMaxLength
     *  Specifies the allowed range for number of characters in a literal value.
     * 
     *  @property valueMaxLength
     *  @type Number
     */
    prototype.valueMaxLength = null;
    /**
     *  Schema.org/readonlyValue
     *  Whether or not a property is mutable.  Default is false. Specifying this for a property that also has a value makes it act similar to a "hidden" input in an HTML form.
     * 
     *  @property readonlyValue
     *  @type Boolean
     */
    prototype.readonlyValue = null;
    /**
     *  Schema.org/valueMinLength
     *  Specifies the minimum allowed range for number of characters in a literal value.
     * 
     *  @property valueMinLength
     *  @type Number
     */
    prototype.valueMinLength = null;
    /**
     *  Schema.org/maxValue
     *  The upper value of some characteristic or property.
     * 
     *  @property maxValue
     *  @type Number
     */
    prototype.maxValue = null;
    /**
     *  Schema.org/valueName
     *  Indicates the name of the PropertyValueSpecification to be used in URL templates and form encoding in a manner analogous to HTML's input@name.
     * 
     *  @property valueName
     *  @type Text
     */
    prototype.valueName = null;
    /**
     *  Schema.org/multipleValues
     *  Whether multiple values are allowed for the property.  Default is false.
     * 
     *  @property multipleValues
     *  @type Boolean
     */
    prototype.multipleValues = null;
    /**
     *  Schema.org/valueRequired
     *  Whether the property must be filled in to complete the action.  Default is false.
     * 
     *  @property valueRequired
     *  @type Boolean
     */
    prototype.valueRequired = null;
}, {defaultValue: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Ticket
 *  Used to describe a ticket to an event, a flight, a bus ride, etc.
 * 
 *  @author schema.org
 *  @class Ticket
 *  @module org.schema
 *  @extends Intangible
 */
var Ticket = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Ticket";
};
Ticket = stjs.extend(Ticket, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/underName
     *  The person or organization the reservation or ticket is for.
     * 
     *  @property underName
     *  @type Organization
     */
    prototype.underName = null;
    /**
     *  Schema.org/totalPrice
     *  The total price for the reservation or ticket, including applicable taxes, shipping, etc.
     * 
     *  @property totalPrice
     *  @type Number
     */
    prototype.totalPrice = null;
    /**
     *  Schema.org/priceCurrency
     *  The currency (in 3-letter ISO 4217 format) of the price or a price component, when attached to [[PriceSpecification]] and its subtypes.
     * 
     *  @property priceCurrency
     *  @type Text
     */
    prototype.priceCurrency = null;
    /**
     *  Schema.org/ticketNumber
     *  The unique identifier for the ticket.
     * 
     *  @property ticketNumber
     *  @type Text
     */
    prototype.ticketNumber = null;
    /**
     *  Schema.org/issuedBy
     *  The organization issuing the ticket or permit.
     * 
     *  @property issuedBy
     *  @type Organization
     */
    prototype.issuedBy = null;
    /**
     *  Schema.org/ticketToken
     *  Reference to an asset (e.g., Barcode, QR code image or PDF) usable for entrance.
     * 
     *  @property ticketToken
     *  @type URL
     */
    prototype.ticketToken = null;
    /**
     *  Schema.org/ticketedSeat
     *  The seat associated with the ticket.
     * 
     *  @property ticketedSeat
     *  @type Seat
     */
    prototype.ticketedSeat = null;
    /**
     *  Schema.org/dateIssued
     *  The date the ticket was issued.
     * 
     *  @property dateIssued
     *  @type DateTime
     */
    prototype.dateIssued = null;
}, {underName: "Organization", issuedBy: "Organization", ticketedSeat: "Seat", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MenuItem
 *  A food or drink item listed in a menu or menu section.
 * 
 *  @author schema.org
 *  @class MenuItem
 *  @module org.schema
 *  @extends Intangible
 */
var MenuItem = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "MenuItem";
};
MenuItem = stjs.extend(MenuItem, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/nutrition
     *  Nutrition information about the recipe or menu item.
     * 
     *  @property nutrition
     *  @type NutritionInformation
     */
    prototype.nutrition = null;
    /**
     *  Schema.org/offers
     *  An offer to provide this item&#x2014;for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event.
     * 
     *  @property offers
     *  @type Offer
     */
    prototype.offers = null;
    /**
     *  Schema.org/suitableForDiet
     *  Indicates a dietary restriction or guideline for which this recipe or menu item is suitable, e.g. diabetic, halal etc.
     * 
     *  @property suitableForDiet
     *  @type RestrictedDiet
     */
    prototype.suitableForDiet = null;
}, {nutrition: "NutritionInformation", offers: "Offer", suitableForDiet: "RestrictedDiet", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BroadcastChannel
 *  A unique instance of a BroadcastService on a CableOrSatelliteService lineup.
 * 
 *  @author schema.org
 *  @class BroadcastChannel
 *  @module org.schema
 *  @extends Intangible
 */
var BroadcastChannel = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "BroadcastChannel";
};
BroadcastChannel = stjs.extend(BroadcastChannel, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/broadcastChannelId
     *  The unique address by which the BroadcastService can be identified in a provider lineup. In US, this is typically a number.
     * 
     *  @property broadcastChannelId
     *  @type Text
     */
    prototype.broadcastChannelId = null;
    /**
     *  Schema.org/broadcastServiceTier
     *  The type of service required to have access to the channel (e.g. Standard or Premium).
     * 
     *  @property broadcastServiceTier
     *  @type Text
     */
    prototype.broadcastServiceTier = null;
    /**
     *  Schema.org/inBroadcastLineup
     *  The CableOrSatelliteService offering the channel.
     * 
     *  @property inBroadcastLineup
     *  @type CableOrSatelliteService
     */
    prototype.inBroadcastLineup = null;
    /**
     *  Schema.org/providesBroadcastService
     *  The BroadcastService offered on this channel.
     * 
     *  @property providesBroadcastService
     *  @type BroadcastService
     */
    prototype.providesBroadcastService = null;
    /**
     *  Schema.org/genre
     *  Genre of the creative work, broadcast channel or group.
     * 
     *  @property genre
     *  @type URL
     */
    prototype.genre = null;
}, {inBroadcastLineup: "CableOrSatelliteService", providesBroadcastService: "BroadcastService", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Permit
 *  A permit issued by an organization, e.g. a parking pass.
 * 
 *  @author schema.org
 *  @class Permit
 *  @module org.schema
 *  @extends Intangible
 */
var Permit = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Permit";
};
Permit = stjs.extend(Permit, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/validFor
     *  The time validity of the permit.
     * 
     *  @property validFor
     *  @type Duration
     */
    prototype.validFor = null;
    /**
     *  Schema.org/validUntil
     *  The date when the item is no longer valid.
     * 
     *  @property validUntil
     *  @type Date
     */
    prototype.validUntil = null;
    /**
     *  Schema.org/validFrom
     *  The date when the item becomes valid.
     * 
     *  @property validFrom
     *  @type DateTime
     */
    prototype.validFrom = null;
    /**
     *  Schema.org/issuedBy
     *  The organization issuing the ticket or permit.
     * 
     *  @property issuedBy
     *  @type Organization
     */
    prototype.issuedBy = null;
    /**
     *  Schema.org/issuedThrough
     *  The service through with the permit was granted.
     * 
     *  @property issuedThrough
     *  @type Service
     */
    prototype.issuedThrough = null;
    /**
     *  Schema.org/permitAudience
     *  The target audience for this permit.
     * 
     *  @property permitAudience
     *  @type Audience
     */
    prototype.permitAudience = null;
    /**
     *  Schema.org/validIn
     *  The geographic area where the permit is valid.
     * 
     *  @property validIn
     *  @type AdministrativeArea
     */
    prototype.validIn = null;
}, {validFor: "Duration", issuedBy: "Organization", issuedThrough: "Service", permitAudience: "Audience", validIn: "AdministrativeArea", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Brand
 *  A brand is a name used by an organization or business person for labeling a product, product group, or similar.
 * 
 *  @author schema.org
 *  @class Brand
 *  @module org.schema
 *  @extends Intangible
 */
var Brand = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Brand";
};
Brand = stjs.extend(Brand, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/aggregateRating
     *  The overall rating, based on a collection of reviews or ratings, of the item.
     * 
     *  @property aggregateRating
     *  @type AggregateRating
     */
    prototype.aggregateRating = null;
    /**
     *  Schema.org/logo
     *  An associated logo.
     * 
     *  @property logo
     *  @type ImageObject
     */
    prototype.logo = null;
    /**
     *  Schema.org/review
     *  A review of the item.
     * 
     *  @property review
     *  @type Review
     */
    prototype.review = null;
}, {aggregateRating: "AggregateRating", logo: "ImageObject", review: "Review", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Offer
 *  An offer to transfer some rights to an item or to provide a service — for example, an offer to sell tickets to an event, to rent the DVD of a movie, to stream a TV show over the internet, to repair a motorcycle, or to loan a book.\n\nFor [GTIN](http://www.gs1.org/barcodes/technical/idkeys/gtin)-related fields, see [Check Digit calculator](http://www.gs1.org/barcodes/support/check_digit_calculator) and [validation guide](http://www.gs1us.org/resources/standards/gtin-validation-guide) from [GS1](http://www.gs1.org/).
 * 
 *  @author schema.org
 *  @class Offer
 *  @module org.schema
 *  @extends Intangible
 */
var Offer = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Offer";
};
Offer = stjs.extend(Offer, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/sku
     *  The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.
     * 
     *  @property sku
     *  @type Text
     */
    prototype.sku = null;
    /**
     *  Schema.org/availabilityStarts
     *  The beginning of the availability of the product or service included in the offer.
     * 
     *  @property availabilityStarts
     *  @type DateTime
     */
    prototype.availabilityStarts = null;
    /**
     *  Schema.org/availableDeliveryMethod
     *  The delivery method(s) available for this offer.
     * 
     *  @property availableDeliveryMethod
     *  @type DeliveryMethod
     */
    prototype.availableDeliveryMethod = null;
    /**
     *  Schema.org/mpn
     *  The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.
     * 
     *  @property mpn
     *  @type Text
     */
    prototype.mpn = null;
    /**
     *  Schema.org/serialNumber
     *  The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.
     * 
     *  @property serialNumber
     *  @type Text
     */
    prototype.serialNumber = null;
    /**
     *  Schema.org/ineligibleRegion
     *  The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed.\n\nSee also [[eligibleRegion]].
     * 
     *  @property ineligibleRegion
     *  @type GeoShape
     */
    prototype.ineligibleRegion = null;
    /**
     *  Schema.org/gtin8
     *  The [GTIN-8](http://apps.gs1.org/GDD/glossary/Pages/GTIN-8.aspx) code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.
     * 
     *  @property gtin8
     *  @type Text
     */
    prototype.gtin8 = null;
    /**
     *  Schema.org/reviews
     *  Review of the item.
     * 
     *  @property reviews
     *  @type Review
     */
    prototype.reviews = null;
    /**
     *  Schema.org/availability
     *  The availability of this item&#x2014;for example In stock, Out of stock, Pre-order, etc.
     * 
     *  @property availability
     *  @type ItemAvailability
     */
    prototype.availability = null;
    /**
     *  Schema.org/priceSpecification
     *  One or more detailed price specifications, indicating the unit price and delivery or payment charges.
     * 
     *  @property priceSpecification
     *  @type PriceSpecification
     */
    prototype.priceSpecification = null;
    /**
     *  Schema.org/inventoryLevel
     *  The current approximate inventory level for the item or items.
     * 
     *  @property inventoryLevel
     *  @type QuantitativeValue
     */
    prototype.inventoryLevel = null;
    /**
     *  Schema.org/aggregateRating
     *  The overall rating, based on a collection of reviews or ratings, of the item.
     * 
     *  @property aggregateRating
     *  @type AggregateRating
     */
    prototype.aggregateRating = null;
    /**
     *  Schema.org/eligibleTransactionVolume
     *  The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.
     * 
     *  @property eligibleTransactionVolume
     *  @type PriceSpecification
     */
    prototype.eligibleTransactionVolume = null;
    /**
     *  Schema.org/availableAtOrFrom
     *  The place(s) from which the offer can be obtained (e.g. store locations).
     * 
     *  @property availableAtOrFrom
     *  @type Place
     */
    prototype.availableAtOrFrom = null;
    /**
     *  Schema.org/priceCurrency
     *  The currency (in 3-letter ISO 4217 format) of the price or a price component, when attached to [[PriceSpecification]] and its subtypes.
     * 
     *  @property priceCurrency
     *  @type Text
     */
    prototype.priceCurrency = null;
    /**
     *  Schema.org/category
     *  A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.
     * 
     *  @property category
     *  @type Text
     */
    prototype.category = null;
    /**
     *  Schema.org/priceValidUntil
     *  The date after which the price is no longer available.
     * 
     *  @property priceValidUntil
     *  @type Date
     */
    prototype.priceValidUntil = null;
    /**
     *  Schema.org/addOn
     *  An additional offer that can only be obtained in combination with the first base offer (e.g. supplements and extensions that are available for a surcharge).
     * 
     *  @property addOn
     *  @type Offer
     */
    prototype.addOn = null;
    /**
     *  Schema.org/warranty
     *  The warranty promise(s) included in the offer.
     * 
     *  @property warranty
     *  @type WarrantyPromise
     */
    prototype.warranty = null;
    /**
     *  Schema.org/includesObject
     *  This links to a node or nodes indicating the exact quantity of the products included in the offer.
     * 
     *  @property includesObject
     *  @type TypeAndQuantityNode
     */
    prototype.includesObject = null;
    /**
     *  Schema.org/eligibleQuantity
     *  The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.
     * 
     *  @property eligibleQuantity
     *  @type QuantitativeValue
     */
    prototype.eligibleQuantity = null;
    /**
     *  Schema.org/validFrom
     *  The date when the item becomes valid.
     * 
     *  @property validFrom
     *  @type DateTime
     */
    prototype.validFrom = null;
    /**
     *  Schema.org/validThrough
     *  The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.
     * 
     *  @property validThrough
     *  @type DateTime
     */
    prototype.validThrough = null;
    /**
     *  Schema.org/price
     *  The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes.\n\nUsage guidelines:\n\n* Use the [[priceCurrency]] property (with [ISO 4217 codes](http://en.wikipedia.org/wiki/ISO_4217#Active_codes) e.g. "USD") instead of
     *  including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as '$' in the value.\n* Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator.\n* Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting.\n* Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT NINE' (U+0039)) rather than superficially similiar Unicode symbols.
     * 
     *  @property price
     *  @type Number
     */
    prototype.price = null;
    /**
     *  Schema.org/gtin14
     *  The [GTIN-14](http://apps.gs1.org/GDD/glossary/Pages/GTIN-14.aspx) code of the product, or the product to which the offer refers. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.
     * 
     *  @property gtin14
     *  @type Text
     */
    prototype.gtin14 = null;
    /**
     *  Schema.org/gtin13
     *  The [GTIN-13](http://apps.gs1.org/GDD/glossary/Pages/GTIN-13.aspx) code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceeding zero. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.
     * 
     *  @property gtin13
     *  @type Text
     */
    prototype.gtin13 = null;
    /**
     *  Schema.org/gtin12
     *  The [GTIN-12](http://apps.gs1.org/GDD/glossary/Pages/GTIN-12.aspx) code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See [GS1 GTIN Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more details.
     * 
     *  @property gtin12
     *  @type Text
     */
    prototype.gtin12 = null;
    /**
     *  Schema.org/seller
     *  An entity which offers (sells / leases / lends / loans) the services / goods.  A seller may also be a provider.
     * 
     *  @property seller
     *  @type Person
     */
    prototype.seller = null;
    /**
     *  Schema.org/deliveryLeadTime
     *  The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup.
     * 
     *  @property deliveryLeadTime
     *  @type QuantitativeValue
     */
    prototype.deliveryLeadTime = null;
    /**
     *  Schema.org/availabilityEnds
     *  The end of the availability of the product or service included in the offer.
     * 
     *  @property availabilityEnds
     *  @type DateTime
     */
    prototype.availabilityEnds = null;
    /**
     *  Schema.org/review
     *  A review of the item.
     * 
     *  @property review
     *  @type Review
     */
    prototype.review = null;
    /**
     *  Schema.org/eligibleCustomerType
     *  The type(s) of customers for which the given offer is valid.
     * 
     *  @property eligibleCustomerType
     *  @type BusinessEntityType
     */
    prototype.eligibleCustomerType = null;
    /**
     *  Schema.org/itemCondition
     *  A predefined value from OfferItemCondition or a textual description of the condition of the product or service, or the products or services included in the offer.
     * 
     *  @property itemCondition
     *  @type OfferItemCondition
     */
    prototype.itemCondition = null;
    /**
     *  Schema.org/itemOffered
     *  The item being offered.
     * 
     *  @property itemOffered
     *  @type Service
     */
    prototype.itemOffered = null;
    /**
     *  Schema.org/offeredBy
     *  A pointer to the organization or person making the offer.
     * 
     *  @property offeredBy
     *  @type Organization
     */
    prototype.offeredBy = null;
    /**
     *  Schema.org/eligibleDuration
     *  The duration for which the given offer is valid.
     * 
     *  @property eligibleDuration
     *  @type QuantitativeValue
     */
    prototype.eligibleDuration = null;
    /**
     *  Schema.org/acceptedPaymentMethod
     *  The payment method(s) accepted by seller for this offer.
     * 
     *  @property acceptedPaymentMethod
     *  @type LoanOrCredit
     */
    prototype.acceptedPaymentMethod = null;
    /**
     *  Schema.org/areaServed
     *  The geographic area where a service or offered item is provided.
     * 
     *  @property areaServed
     *  @type Place
     */
    prototype.areaServed = null;
    /**
     *  Schema.org/businessFunction
     *  The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.
     * 
     *  @property businessFunction
     *  @type BusinessFunction
     */
    prototype.businessFunction = null;
    /**
     *  Schema.org/eligibleRegion
     *  The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid.\n\nSee also [[ineligibleRegion]].
     * 
     *  @property eligibleRegion
     *  @type Text
     */
    prototype.eligibleRegion = null;
    /**
     *  Schema.org/advanceBookingRequirement
     *  The amount of time that is required between accepting the offer and the actual usage of the resource or service.
     * 
     *  @property advanceBookingRequirement
     *  @type QuantitativeValue
     */
    prototype.advanceBookingRequirement = null;
}, {availableDeliveryMethod: "DeliveryMethod", ineligibleRegion: "GeoShape", reviews: "Review", availability: "ItemAvailability", priceSpecification: "PriceSpecification", inventoryLevel: "QuantitativeValue", aggregateRating: "AggregateRating", eligibleTransactionVolume: "PriceSpecification", availableAtOrFrom: "Place", addOn: "Offer", warranty: "WarrantyPromise", includesObject: "TypeAndQuantityNode", eligibleQuantity: "QuantitativeValue", seller: "Person", deliveryLeadTime: "QuantitativeValue", review: "Review", eligibleCustomerType: "BusinessEntityType", itemCondition: "OfferItemCondition", itemOffered: "Service", offeredBy: "Organization", eligibleDuration: "QuantitativeValue", acceptedPaymentMethod: "LoanOrCredit", areaServed: "Place", businessFunction: "BusinessFunction", advanceBookingRequirement: "QuantitativeValue", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Reservation
 *  Describes a reservation for travel, dining or an event. Some reservations require tickets. \n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, restaurant reservations, flights, or rental cars, use [[Offer]].
 * 
 *  @author schema.org
 *  @class Reservation
 *  @module org.schema
 *  @extends Intangible
 */
var Reservation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Intangible.call(this);
    this.context = "http://schema.org/";
    this.type = "Reservation";
};
Reservation = stjs.extend(Reservation, Intangible, [], function(constructor, prototype) {
    /**
     *  Schema.org/provider
     *  The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.
     * 
     *  @property provider
     *  @type Person
     */
    prototype.provider = null;
    /**
     *  Schema.org/programMembershipUsed
     *  Any membership in a frequent flyer, hotel loyalty program, etc. being applied to the reservation.
     * 
     *  @property programMembershipUsed
     *  @type ProgramMembership
     */
    prototype.programMembershipUsed = null;
    /**
     *  Schema.org/reservationStatus
     *  The current status of the reservation.
     * 
     *  @property reservationStatus
     *  @type ReservationStatusType
     */
    prototype.reservationStatus = null;
    /**
     *  Schema.org/underName
     *  The person or organization the reservation or ticket is for.
     * 
     *  @property underName
     *  @type Organization
     */
    prototype.underName = null;
    /**
     *  Schema.org/bookingAgent
     *  'bookingAgent' is an out-dated term indicating a 'broker' that serves as a booking agent.
     * 
     *  @property bookingAgent
     *  @type Organization
     */
    prototype.bookingAgent = null;
    /**
     *  Schema.org/totalPrice
     *  The total price for the reservation or ticket, including applicable taxes, shipping, etc.
     * 
     *  @property totalPrice
     *  @type Number
     */
    prototype.totalPrice = null;
    /**
     *  Schema.org/reservationFor
     *  The thing -- flight, event, restaurant,etc. being reserved.
     * 
     *  @property reservationFor
     *  @type Thing
     */
    prototype.reservationFor = null;
    /**
     *  Schema.org/priceCurrency
     *  The currency (in 3-letter ISO 4217 format) of the price or a price component, when attached to [[PriceSpecification]] and its subtypes.
     * 
     *  @property priceCurrency
     *  @type Text
     */
    prototype.priceCurrency = null;
    /**
     *  Schema.org/broker
     *  An entity that arranges for an exchange between a buyer and a seller.  In most cases a broker never acquires or releases ownership of a product or service involved in an exchange.  If it is not clear whether an entity is a broker, seller, or buyer, the latter two terms are preferred.
     * 
     *  @property broker
     *  @type Person
     */
    prototype.broker = null;
    /**
     *  Schema.org/modifiedTime
     *  The date and time the reservation was modified.
     * 
     *  @property modifiedTime
     *  @type DateTime
     */
    prototype.modifiedTime = null;
    /**
     *  Schema.org/bookingTime
     *  The date and time the reservation was booked.
     * 
     *  @property bookingTime
     *  @type DateTime
     */
    prototype.bookingTime = null;
    /**
     *  Schema.org/reservationId
     *  A unique identifier for the reservation.
     * 
     *  @property reservationId
     *  @type Text
     */
    prototype.reservationId = null;
    /**
     *  Schema.org/reservedTicket
     *  A ticket associated with the reservation.
     * 
     *  @property reservedTicket
     *  @type Ticket
     */
    prototype.reservedTicket = null;
}, {provider: "Person", programMembershipUsed: "ProgramMembership", reservationStatus: "ReservationStatusType", underName: "Organization", bookingAgent: "Organization", reservationFor: "Thing", broker: "Person", reservedTicket: "Ticket", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SomeProducts
 *  A placeholder for multiple similar products of the same kind.
 * 
 *  @author schema.org
 *  @class SomeProducts
 *  @module org.schema
 *  @extends Product
 */
var SomeProducts = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Product.call(this);
    this.context = "http://schema.org/";
    this.type = "SomeProducts";
};
SomeProducts = stjs.extend(SomeProducts, Product, [], function(constructor, prototype) {
    /**
     *  Schema.org/inventoryLevel
     *  The current approximate inventory level for the item or items.
     * 
     *  @property inventoryLevel
     *  @type QuantitativeValue
     */
    prototype.inventoryLevel = null;
}, {inventoryLevel: "QuantitativeValue", manufacturer: "Organization", audience: "Audience", height: "Distance", reviews: "Review", aggregateRating: "AggregateRating", isConsumableFor: "Product", offers: "Offer", width: "Distance", additionalProperty: "PropertyValue", isAccessoryOrSparePartFor: "Product", logo: "ImageObject", weight: "QuantitativeValue", depth: "Distance", isSimilarTo: "Product", isRelatedTo: "Product", review: "Review", itemCondition: "OfferItemCondition", brand: "Organization", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ProductModel
 *  A datasheet or vendor specification of a product (in the sense of a prototypical description).
 * 
 *  @author schema.org
 *  @class ProductModel
 *  @module org.schema
 *  @extends Product
 */
var ProductModel = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Product.call(this);
    this.context = "http://schema.org/";
    this.type = "ProductModel";
};
ProductModel = stjs.extend(ProductModel, Product, [], function(constructor, prototype) {
    /**
     *  Schema.org/predecessorOf
     *  A pointer from a previous, often discontinued variant of the product to its newer variant.
     * 
     *  @property predecessorOf
     *  @type ProductModel
     */
    prototype.predecessorOf = null;
    /**
     *  Schema.org/successorOf
     *  A pointer from a newer variant of a product  to its previous, often discontinued predecessor.
     * 
     *  @property successorOf
     *  @type ProductModel
     */
    prototype.successorOf = null;
    /**
     *  Schema.org/isVariantOf
     *  A pointer to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. This is not transitive.
     * 
     *  @property isVariantOf
     *  @type ProductModel
     */
    prototype.isVariantOf = null;
}, {predecessorOf: "ProductModel", successorOf: "ProductModel", isVariantOf: "ProductModel", manufacturer: "Organization", audience: "Audience", height: "Distance", reviews: "Review", aggregateRating: "AggregateRating", isConsumableFor: "Product", offers: "Offer", width: "Distance", additionalProperty: "PropertyValue", isAccessoryOrSparePartFor: "Product", logo: "ImageObject", weight: "QuantitativeValue", depth: "Distance", isSimilarTo: "Product", isRelatedTo: "Product", review: "Review", itemCondition: "OfferItemCondition", brand: "Organization", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Vehicle
 *  A vehicle is a device that is designed or used to transport people or cargo over land, water, air, or through space.
 * 
 *  @author schema.org
 *  @class Vehicle
 *  @module org.schema
 *  @extends Product
 */
var Vehicle = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Product.call(this);
    this.context = "http://schema.org/";
    this.type = "Vehicle";
};
Vehicle = stjs.extend(Vehicle, Product, [], function(constructor, prototype) {
    /**
     *  Schema.org/vehicleSpecialUsage
     *  Indicates whether the vehicle has been used for special purposes, like commercial rental, driving school, or as a taxi. The legislation in many countries requires this information to be revealed when offering a car for sale.
     * 
     *  @property vehicleSpecialUsage
     *  @type Text
     */
    prototype.vehicleSpecialUsage = null;
    /**
     *  Schema.org/productionDate
     *  The date of production of the item, e.g. vehicle.
     * 
     *  @property productionDate
     *  @type Date
     */
    prototype.productionDate = null;
    /**
     *  Schema.org/numberOfForwardGears
     *  The total number of forward gears available for the transmission system of the vehicle.\n\nTypical unit code(s): C62
     * 
     *  @property numberOfForwardGears
     *  @type Number
     */
    prototype.numberOfForwardGears = null;
    /**
     *  Schema.org/mileageFromOdometer
     *  The total distance travelled by the particular vehicle since its initial production, as read from its odometer.\n\nTypical unit code(s): KMT for kilometers, SMI for statute miles
     * 
     *  @property mileageFromOdometer
     *  @type QuantitativeValue
     */
    prototype.mileageFromOdometer = null;
    /**
     *  Schema.org/cargoVolume
     *  The available volume for cargo or luggage. For automobiles, this is usually the trunk volume.\n\nTypical unit code(s): LTR for liters, FTQ for cubic foot/feet\n\nNote: You can use [[minValue]] and [[maxValue]] to indicate ranges.
     * 
     *  @property cargoVolume
     *  @type QuantitativeValue
     */
    prototype.cargoVolume = null;
    /**
     *  Schema.org/vehicleInteriorColor
     *  The color or color combination of the interior of the vehicle.
     * 
     *  @property vehicleInteriorColor
     *  @type Text
     */
    prototype.vehicleInteriorColor = null;
    /**
     *  Schema.org/steeringPosition
     *  The position of the steering wheel or similar device (mostly for cars).
     * 
     *  @property steeringPosition
     *  @type SteeringPositionValue
     */
    prototype.steeringPosition = null;
    /**
     *  Schema.org/vehicleSeatingCapacity
     *  The number of passengers that can be seated in the vehicle, both in terms of the physical space available, and in terms of limitations set by law.\n\nTypical unit code(s): C62 for persons.
     * 
     *  @property vehicleSeatingCapacity
     *  @type QuantitativeValue
     */
    prototype.vehicleSeatingCapacity = null;
    /**
     *  Schema.org/vehicleEngine
     *  Information about the engine or engines of the vehicle.
     * 
     *  @property vehicleEngine
     *  @type EngineSpecification
     */
    prototype.vehicleEngine = null;
    /**
     *  Schema.org/vehicleModelDate
     *  The release date of a vehicle model (often used to differentiate versions of the same make and model).
     * 
     *  @property vehicleModelDate
     *  @type Date
     */
    prototype.vehicleModelDate = null;
    /**
     *  Schema.org/numberOfDoors
     *  The number of doors.\n\nTypical unit code(s): C62
     * 
     *  @property numberOfDoors
     *  @type Number
     */
    prototype.numberOfDoors = null;
    /**
     *  Schema.org/vehicleConfiguration
     *  A short text indicating the configuration of the vehicle, e.g. '5dr hatchback ST 2.5 MT 225 hp' or 'limited edition'.
     * 
     *  @property vehicleConfiguration
     *  @type Text
     */
    prototype.vehicleConfiguration = null;
    /**
     *  Schema.org/fuelType
     *  The type of fuel suitable for the engine or engines of the vehicle. If the vehicle has only one engine, this property can be attached directly to the vehicle.
     * 
     *  @property fuelType
     *  @type Text
     */
    prototype.fuelType = null;
    /**
     *  Schema.org/vehicleIdentificationNumber
     *  The Vehicle Identification Number (VIN) is a unique serial number used by the automotive industry to identify individual motor vehicles.
     * 
     *  @property vehicleIdentificationNumber
     *  @type Text
     */
    prototype.vehicleIdentificationNumber = null;
    /**
     *  Schema.org/fuelConsumption
     *  The amount of fuel consumed for traveling a particular distance or temporal duration with the given vehicle (e.g. liters per 100 km).\n\n* Note 1: There are unfortunately no standard unit codes for liters per 100 km.  Use [[unitText]] to indicate the unit of measurement, e.g. L/100 km.\n* Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal.\n* Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel consumption to another value.
     * 
     *  @property fuelConsumption
     *  @type QuantitativeValue
     */
    prototype.fuelConsumption = null;
    /**
     *  Schema.org/numberOfPreviousOwners
     *  The number of owners of the vehicle, including the current one.\n\nTypical unit code(s): C62
     * 
     *  @property numberOfPreviousOwners
     *  @type QuantitativeValue
     */
    prototype.numberOfPreviousOwners = null;
    /**
     *  Schema.org/fuelEfficiency
     *  The distance traveled per unit of fuel used; most commonly miles per gallon (mpg) or kilometers per liter (km/L).\n\n* Note 1: There are unfortunately no standard unit codes for miles per gallon or kilometers per liter. Use [[unitText]] to indicate the unit of measurement, e.g. mpg or km/L.\n* Note 2: There are two ways of indicating the fuel consumption, [[fuelConsumption]] (e.g. 8 liters per 100 km) and [[fuelEfficiency]] (e.g. 30 miles per gallon). They are reciprocal.\n* Note 3: Often, the absolute value is useful only when related to driving speed ("at 80 km/h") or usage pattern ("city traffic"). You can use [[valueReference]] to link the value for the fuel economy to another value.
     * 
     *  @property fuelEfficiency
     *  @type QuantitativeValue
     */
    prototype.fuelEfficiency = null;
    /**
     *  Schema.org/numberOfAxles
     *  The number of axles.\n\nTypical unit code(s): C62
     * 
     *  @property numberOfAxles
     *  @type QuantitativeValue
     */
    prototype.numberOfAxles = null;
    /**
     *  Schema.org/vehicleInteriorType
     *  The type or material of the interior of the vehicle (e.g. synthetic fabric, leather, wood, etc.). While most interior types are characterized by the material used, an interior type can also be based on vehicle usage or target audience.
     * 
     *  @property vehicleInteriorType
     *  @type Text
     */
    prototype.vehicleInteriorType = null;
    /**
     *  Schema.org/numberOfAirbags
     *  The number or type of airbags in the vehicle.
     * 
     *  @property numberOfAirbags
     *  @type Text
     */
    prototype.numberOfAirbags = null;
    /**
     *  Schema.org/vehicleTransmission
     *  The type of component used for transmitting the power from a rotating power source to the wheels or other relevant component(s) ("gearbox" for cars).
     * 
     *  @property vehicleTransmission
     *  @type Text
     */
    prototype.vehicleTransmission = null;
    /**
     *  Schema.org/dateVehicleFirstRegistered
     *  The date of the first registration of the vehicle with the respective public authorities.
     * 
     *  @property dateVehicleFirstRegistered
     *  @type Date
     */
    prototype.dateVehicleFirstRegistered = null;
    /**
     *  Schema.org/purchaseDate
     *  The date the item e.g. vehicle was purchased by the current owner.
     * 
     *  @property purchaseDate
     *  @type Date
     */
    prototype.purchaseDate = null;
    /**
     *  Schema.org/knownVehicleDamages
     *  A textual description of known damages, both repaired and unrepaired.
     * 
     *  @property knownVehicleDamages
     *  @type Text
     */
    prototype.knownVehicleDamages = null;
    /**
     *  Schema.org/driveWheelConfiguration
     *  The drive wheel configuration, i.e. which roadwheels will receive torque from the vehicle's engine via the drivetrain.
     * 
     *  @property driveWheelConfiguration
     *  @type DriveWheelConfigurationValue
     */
    prototype.driveWheelConfiguration = null;
}, {mileageFromOdometer: "QuantitativeValue", cargoVolume: "QuantitativeValue", steeringPosition: "SteeringPositionValue", vehicleSeatingCapacity: "QuantitativeValue", vehicleEngine: "EngineSpecification", fuelConsumption: "QuantitativeValue", numberOfPreviousOwners: "QuantitativeValue", fuelEfficiency: "QuantitativeValue", numberOfAxles: "QuantitativeValue", driveWheelConfiguration: "DriveWheelConfigurationValue", manufacturer: "Organization", audience: "Audience", height: "Distance", reviews: "Review", aggregateRating: "AggregateRating", isConsumableFor: "Product", offers: "Offer", width: "Distance", additionalProperty: "PropertyValue", isAccessoryOrSparePartFor: "Product", logo: "ImageObject", weight: "QuantitativeValue", depth: "Distance", isSimilarTo: "Product", isRelatedTo: "Product", review: "Review", itemCondition: "OfferItemCondition", brand: "Organization", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/IndividualProduct
 *  A single, identifiable product instance (e.g. a laptop with a particular serial number).
 * 
 *  @author schema.org
 *  @class IndividualProduct
 *  @module org.schema
 *  @extends Product
 */
var IndividualProduct = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Product.call(this);
    this.context = "http://schema.org/";
    this.type = "IndividualProduct";
};
IndividualProduct = stjs.extend(IndividualProduct, Product, [], function(constructor, prototype) {
    /**
     *  Schema.org/serialNumber
     *  The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.
     * 
     *  @property serialNumber
     *  @type Text
     */
    prototype.serialNumber = null;
}, {manufacturer: "Organization", audience: "Audience", height: "Distance", reviews: "Review", aggregateRating: "AggregateRating", isConsumableFor: "Product", offers: "Offer", width: "Distance", additionalProperty: "PropertyValue", isAccessoryOrSparePartFor: "Product", logo: "ImageObject", weight: "QuantitativeValue", depth: "Distance", isSimilarTo: "Product", isRelatedTo: "Product", review: "Review", itemCondition: "OfferItemCondition", brand: "Organization", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DigitalDocument
 *  An electronic file or document.
 * 
 *  @author schema.org
 *  @class DigitalDocument
 *  @module org.schema
 *  @extends CreativeWork
 */
var DigitalDocument = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "DigitalDocument";
};
DigitalDocument = stjs.extend(DigitalDocument, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/hasDigitalDocumentPermission
     *  A permission related to the access to this document (e.g. permission to read or write an electronic document). For a public document, specify a grantee with an Audience with audienceType equal to "public".
     * 
     *  @property hasDigitalDocumentPermission
     *  @type DigitalDocumentPermission
     */
    prototype.hasDigitalDocumentPermission = null;
}, {hasDigitalDocumentPermission: "DigitalDocumentPermission", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Season
 *  A media season e.g. tv, radio, video game etc.
 * 
 *  @author schema.org
 *  @class Season
 *  @module org.schema
 *  @extends CreativeWork
 */
var Season = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Season";
};
Season = stjs.extend(Season, CreativeWork, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Clip
 *  A short TV or radio program or a segment/part of a program.
 * 
 *  @author schema.org
 *  @class Clip
 *  @module org.schema
 *  @extends CreativeWork
 */
var Clip = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Clip";
};
Clip = stjs.extend(Clip, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/actor
     *  An actor, e.g. in tv, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property actor
     *  @type Person
     */
    prototype.actor = null;
    /**
     *  Schema.org/partOfSeries
     *  The series to which this episode or season belongs.
     * 
     *  @property partOfSeries
     *  @type CreativeWorkSeries
     */
    prototype.partOfSeries = null;
    /**
     *  Schema.org/partOfEpisode
     *  The episode to which this clip belongs.
     * 
     *  @property partOfEpisode
     *  @type Episode
     */
    prototype.partOfEpisode = null;
    /**
     *  Schema.org/partOfSeason
     *  The season to which this episode belongs.
     * 
     *  @property partOfSeason
     *  @type CreativeWorkSeason
     */
    prototype.partOfSeason = null;
    /**
     *  Schema.org/musicBy
     *  The composer of the soundtrack.
     * 
     *  @property musicBy
     *  @type Person
     */
    prototype.musicBy = null;
    /**
     *  Schema.org/directors
     *  A director of e.g. tv, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property directors
     *  @type Person
     */
    prototype.directors = null;
    /**
     *  Schema.org/director
     *  A director of e.g. tv, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property director
     *  @type Person
     */
    prototype.director = null;
    /**
     *  Schema.org/actors
     *  An actor, e.g. in tv, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property actors
     *  @type Person
     */
    prototype.actors = null;
    /**
     *  Schema.org/clipNumber
     *  Position of the clip within an ordered group of clips.
     * 
     *  @property clipNumber
     *  @type Integer
     */
    prototype.clipNumber = null;
}, {actor: "Person", partOfSeries: "CreativeWorkSeries", partOfEpisode: "Episode", partOfSeason: "CreativeWorkSeason", musicBy: "Person", directors: "Person", director: "Person", actors: "Person", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Map
 *  A map.
 * 
 *  @author schema.org
 *  @class Map
 *  @module org.schema
 *  @extends CreativeWork
 */
var SchemaMap = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Map";
};
SchemaMap = stjs.extend(SchemaMap, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/mapType
     *  Indicates the kind of Map, from the MapCategoryType Enumeration.
     * 
     *  @property mapType
     *  @type MapCategoryType
     */
    prototype.mapType = null;
}, {mapType: "MapCategoryType", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Menu
 *  A structured representation of food or drink items available from a FoodEstablishment.
 * 
 *  @author schema.org
 *  @class Menu
 *  @module org.schema
 *  @extends CreativeWork
 */
var Menu = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Menu";
};
Menu = stjs.extend(Menu, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/hasMenuItem
     *  A food or drink item contained in a menu or menu section.
     * 
     *  @property hasMenuItem
     *  @type MenuItem
     */
    prototype.hasMenuItem = null;
    /**
     *  Schema.org/hasMenuSection
     *  A subgrouping of the menu (by dishes, course, serving time period, etc.).
     * 
     *  @property hasMenuSection
     *  @type MenuSection
     */
    prototype.hasMenuSection = null;
}, {hasMenuItem: "MenuItem", hasMenuSection: "MenuSection", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Code
 *  Computer programming source code. Example: Full (compile ready) solutions, code snippet samples, scripts, templates.
 * 
 *  @author schema.org
 *  @class Code
 *  @module org.schema
 *  @extends CreativeWork
 */
var Code = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Code";
};
Code = stjs.extend(Code, CreativeWork, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Painting
 *  A painting.
 * 
 *  @author schema.org
 *  @class Painting
 *  @module org.schema
 *  @extends CreativeWork
 */
var Painting = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Painting";
};
Painting = stjs.extend(Painting, CreativeWork, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Game
 *  The Game type represents things which are games. These are typically rule-governed recreational activities, e.g. role-playing games in which players assume the role of characters in a fictional setting.
 * 
 *  @author schema.org
 *  @class Game
 *  @module org.schema
 *  @extends CreativeWork
 */
var Game = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Game";
};
Game = stjs.extend(Game, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/gameItem
     *  An item is an object within the game world that can be collected by a player or, occasionally, a non-player character.
     * 
     *  @property gameItem
     *  @type Thing
     */
    prototype.gameItem = null;
    /**
     *  Schema.org/characterAttribute
     *  A piece of data that represents a particular aspect of a fictional character (skill, power, character points, advantage, disadvantage).
     * 
     *  @property characterAttribute
     *  @type Thing
     */
    prototype.characterAttribute = null;
    /**
     *  Schema.org/gameLocation
     *  Real or fictional location of the game (or part of game).
     * 
     *  @property gameLocation
     *  @type URL
     */
    prototype.gameLocation = null;
    /**
     *  Schema.org/quest
     *  The task that a player-controlled character, or group of characters may complete in order to gain a reward.
     * 
     *  @property quest
     *  @type Thing
     */
    prototype.quest = null;
    /**
     *  Schema.org/numberOfPlayers
     *  Indicate how many people can play this game (minimum, maximum, or range).
     * 
     *  @property numberOfPlayers
     *  @type QuantitativeValue
     */
    prototype.numberOfPlayers = null;
}, {gameItem: "Thing", characterAttribute: "Thing", quest: "Thing", numberOfPlayers: "QuantitativeValue", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/WebSite
 *  A WebSite is a set of related web pages and other items typically served from a single web domain and accessible via URLs.
 * 
 *  @author schema.org
 *  @class WebSite
 *  @module org.schema
 *  @extends CreativeWork
 */
var WebSite = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "WebSite";
};
WebSite = stjs.extend(WebSite, CreativeWork, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SoftwareApplication
 *  A software application.
 * 
 *  @author schema.org
 *  @class SoftwareApplication
 *  @module org.schema
 *  @extends CreativeWork
 */
var SoftwareApplication = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "SoftwareApplication";
};
SoftwareApplication = stjs.extend(SoftwareApplication, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/downloadUrl
     *  If the file can be downloaded, URL to download the binary.
     * 
     *  @property downloadUrl
     *  @type URL
     */
    prototype.downloadUrl = null;
    /**
     *  Schema.org/softwareRequirements
     *  Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (Examples: DirectX, Java or .NET runtime).
     * 
     *  @property softwareRequirements
     *  @type Text
     */
    prototype.softwareRequirements = null;
    /**
     *  Schema.org/permissions
     *  Permission(s) required to run the app (for example, a mobile app may require full internet access or may run only on wifi).
     * 
     *  @property permissions
     *  @type Text
     */
    prototype.permissions = null;
    /**
     *  Schema.org/processorRequirements
     *  Processor architecture required to run the application (e.g. IA64).
     * 
     *  @property processorRequirements
     *  @type Text
     */
    prototype.processorRequirements = null;
    /**
     *  Schema.org/availableOnDevice
     *  Device required to run the application. Used in cases where a specific make/model is required to run the application.
     * 
     *  @property availableOnDevice
     *  @type Text
     */
    prototype.availableOnDevice = null;
    /**
     *  Schema.org/featureList
     *  Features or modules provided by this application (and possibly required by other applications).
     * 
     *  @property featureList
     *  @type URL
     */
    prototype.featureList = null;
    /**
     *  Schema.org/applicationSubCategory
     *  Subcategory of the application, e.g. 'Arcade Game'.
     * 
     *  @property applicationSubCategory
     *  @type URL
     */
    prototype.applicationSubCategory = null;
    /**
     *  Schema.org/requirements
     *  Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (Examples: DirectX, Java or .NET runtime).
     * 
     *  @property requirements
     *  @type Text
     */
    prototype.requirements = null;
    /**
     *  Schema.org/device
     *  Device required to run the application. Used in cases where a specific make/model is required to run the application.
     * 
     *  @property device
     *  @type Text
     */
    prototype.device = null;
    /**
     *  Schema.org/applicationCategory
     *  Type of software application, e.g. 'Game, Multimedia'.
     * 
     *  @property applicationCategory
     *  @type Text
     */
    prototype.applicationCategory = null;
    /**
     *  Schema.org/softwareVersion
     *  Version of the software instance.
     * 
     *  @property softwareVersion
     *  @type Text
     */
    prototype.softwareVersion = null;
    /**
     *  Schema.org/storageRequirements
     *  Storage requirements (free space required).
     * 
     *  @property storageRequirements
     *  @type Text
     */
    prototype.storageRequirements = null;
    /**
     *  Schema.org/applicationSuite
     *  The name of the application suite to which the application belongs (e.g. Excel belongs to Office).
     * 
     *  @property applicationSuite
     *  @type Text
     */
    prototype.applicationSuite = null;
    /**
     *  Schema.org/memoryRequirements
     *  Minimum memory requirements.
     * 
     *  @property memoryRequirements
     *  @type Text
     */
    prototype.memoryRequirements = null;
    /**
     *  Schema.org/screenshot
     *  A link to a screenshot image of the app.
     * 
     *  @property screenshot
     *  @type URL
     */
    prototype.screenshot = null;
    /**
     *  Schema.org/countriesSupported
     *  Countries for which the application is supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.
     * 
     *  @property countriesSupported
     *  @type Text
     */
    prototype.countriesSupported = null;
    /**
     *  Schema.org/softwareHelp
     *  Software application help.
     * 
     *  @property softwareHelp
     *  @type CreativeWork
     */
    prototype.softwareHelp = null;
    /**
     *  Schema.org/softwareAddOn
     *  Additional content for a software application.
     * 
     *  @property softwareAddOn
     *  @type SoftwareApplication
     */
    prototype.softwareAddOn = null;
    /**
     *  Schema.org/releaseNotes
     *  Description of what changed in this version.
     * 
     *  @property releaseNotes
     *  @type Text
     */
    prototype.releaseNotes = null;
    /**
     *  Schema.org/supportingData
     *  Supporting data for a SoftwareApplication.
     * 
     *  @property supportingData
     *  @type DataFeed
     */
    prototype.supportingData = null;
    /**
     *  Schema.org/countriesNotSupported
     *  Countries for which the application is not supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.
     * 
     *  @property countriesNotSupported
     *  @type Text
     */
    prototype.countriesNotSupported = null;
    /**
     *  Schema.org/operatingSystem
     *  Operating systems supported (Windows 7, OSX 10.6, Android 1.6).
     * 
     *  @property operatingSystem
     *  @type Text
     */
    prototype.operatingSystem = null;
    /**
     *  Schema.org/fileSize
     *  Size of the application / package (e.g. 18MB). In the absence of a unit (MB, KB etc.), KB will be assumed.
     * 
     *  @property fileSize
     *  @type Text
     */
    prototype.fileSize = null;
    /**
     *  Schema.org/installUrl
     *  URL at which the app may be installed, if different from the URL of the item.
     * 
     *  @property installUrl
     *  @type URL
     */
    prototype.installUrl = null;
}, {softwareHelp: "CreativeWork", softwareAddOn: "SoftwareApplication", supportingData: "DataFeed", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Question
 *  A specific question - e.g. from a user seeking answers online, or collected in a Frequently Asked Questions (FAQ) document.
 * 
 *  @author schema.org
 *  @class Question
 *  @module org.schema
 *  @extends CreativeWork
 */
var Question = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Question";
};
Question = stjs.extend(Question, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/answerCount
     *  The number of answers this question has received.
     * 
     *  @property answerCount
     *  @type Integer
     */
    prototype.answerCount = null;
    /**
     *  Schema.org/acceptedAnswer
     *  The answer that has been accepted as best, typically on a Question/Answer site. Sites vary in their selection mechanisms, e.g. drawing on community opinion and/or the view of the Question author.
     * 
     *  @property acceptedAnswer
     *  @type Answer
     */
    prototype.acceptedAnswer = null;
    /**
     *  Schema.org/upvoteCount
     *  The number of upvotes this question, answer or comment has received from the community.
     * 
     *  @property upvoteCount
     *  @type Integer
     */
    prototype.upvoteCount = null;
    /**
     *  Schema.org/suggestedAnswer
     *  An answer (possibly one of several, possibly incorrect) to a Question, e.g. on a Question/Answer site.
     * 
     *  @property suggestedAnswer
     *  @type Answer
     */
    prototype.suggestedAnswer = null;
    /**
     *  Schema.org/downvoteCount
     *  The number of downvotes this question, answer or comment has received from the community.
     * 
     *  @property downvoteCount
     *  @type Integer
     */
    prototype.downvoteCount = null;
}, {acceptedAnswer: "Answer", suggestedAnswer: "Answer", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Dataset
 *  A body of structured information describing some topic(s) of interest.
 * 
 *  @author schema.org
 *  @class Dataset
 *  @module org.schema
 *  @extends CreativeWork
 */
var Dataset = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Dataset";
};
Dataset = stjs.extend(Dataset, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/catalog
     *  A data catalog which contains this dataset.
     * 
     *  @property catalog
     *  @type DataCatalog
     */
    prototype.catalog = null;
    /**
     *  Schema.org/includedInDataCatalog
     *  A data catalog which contains this dataset.
     * 
     *  @property includedInDataCatalog
     *  @type DataCatalog
     */
    prototype.includedInDataCatalog = null;
    /**
     *  Schema.org/datasetTimeInterval
     *  The range of temporal applicability of a dataset, e.g. for a 2011 census dataset, the year 2011 (in ISO 8601 time interval format).
     * 
     *  @property datasetTimeInterval
     *  @type DateTime
     */
    prototype.datasetTimeInterval = null;
    /**
     *  Schema.org/spatial
     *  The range of spatial applicability of a dataset, e.g. for a dataset of New York weather, the state of New York.
     * 
     *  @property spatial
     *  @type Place
     */
    prototype.spatial = null;
    /**
     *  Schema.org/temporal
     *  The range of temporal applicability of a dataset, e.g. for a 2011 census dataset, the year 2011 (in ISO 8601 time interval format).
     * 
     *  @property temporal
     *  @type DateTime
     */
    prototype.temporal = null;
    /**
     *  Schema.org/includedDataCatalog
     *  A data catalog which contains this dataset (this property was previously 'catalog', preferred name is now 'includedInDataCatalog').
     * 
     *  @property includedDataCatalog
     *  @type DataCatalog
     */
    prototype.includedDataCatalog = null;
    /**
     *  Schema.org/distribution
     *  A downloadable form of this dataset, at a specific location, in a specific format.
     * 
     *  @property distribution
     *  @type DataDownload
     */
    prototype.distribution = null;
}, {catalog: "DataCatalog", includedInDataCatalog: "DataCatalog", spatial: "Place", includedDataCatalog: "DataCatalog", distribution: "DataDownload", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/VisualArtwork
 *  A work of art that is primarily visual in character.
 * 
 *  @author schema.org
 *  @class VisualArtwork
 *  @module org.schema
 *  @extends CreativeWork
 */
var VisualArtwork = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "VisualArtwork";
};
VisualArtwork = stjs.extend(VisualArtwork, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/height
     *  The height of the item.
     * 
     *  @property height
     *  @type Distance
     */
    prototype.height = null;
    /**
     *  Schema.org/artMedium
     *  The material used. (e.g. Oil, Watercolour, Acrylic, Linoprint, Marble, Cyanotype, Digital, Lithograph, DryPoint, Intaglio, Pastel, Woodcut, Pencil, Mixed Media, etc.)
     * 
     *  @property artMedium
     *  @type Text
     */
    prototype.artMedium = null;
    /**
     *  Schema.org/artform
     *  e.g. Painting, Drawing, Sculpture, Print, Photograph, Assemblage, Collage, etc.
     * 
     *  @property artform
     *  @type Text
     */
    prototype.artform = null;
    /**
     *  Schema.org/artworkSurface
     *  The supporting materials for the artwork, e.g. Canvas, Paper, Wood, Board, etc.
     * 
     *  @property artworkSurface
     *  @type Text
     */
    prototype.artworkSurface = null;
    /**
     *  Schema.org/artEdition
     *  The number of copies when multiple copies of a piece of artwork are produced - e.g. for a limited edition of 20 prints, 'artEdition' refers to the total number of copies (in this example "20").
     * 
     *  @property artEdition
     *  @type Integer
     */
    prototype.artEdition = null;
    /**
     *  Schema.org/width
     *  The width of the item.
     * 
     *  @property width
     *  @type Distance
     */
    prototype.width = null;
    /**
     *  Schema.org/surface
     *  A material used as a surface in some artwork, e.g. Canvas, Paper, Wood, Board, etc.
     * 
     *  @property surface
     *  @type Text
     */
    prototype.surface = null;
    /**
     *  Schema.org/depth
     *  The depth of the item.
     * 
     *  @property depth
     *  @type Distance
     */
    prototype.depth = null;
}, {height: "Distance", width: "Distance", depth: "Distance", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TVSeries
 *  CreativeWorkSeries dedicated to TV broadcast and associated online delivery.
 * 
 *  @author schema.org
 *  @class TVSeries
 *  @module org.schema
 *  @extends CreativeWork
 */
var TVSeries = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "TVSeries";
};
TVSeries = stjs.extend(TVSeries, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/seasons
     *  A season in a media series.
     * 
     *  @property seasons
     *  @type CreativeWorkSeason
     */
    prototype.seasons = null;
    /**
     *  Schema.org/actor
     *  An actor, e.g. in tv, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property actor
     *  @type Person
     */
    prototype.actor = null;
    /**
     *  Schema.org/numberOfEpisodes
     *  The number of episodes in this season or series.
     * 
     *  @property numberOfEpisodes
     *  @type Integer
     */
    prototype.numberOfEpisodes = null;
    /**
     *  Schema.org/trailer
     *  The trailer of a movie or tv/radio series, season, episode, etc.
     * 
     *  @property trailer
     *  @type VideoObject
     */
    prototype.trailer = null;
    /**
     *  Schema.org/season
     *  A season in a media series.
     * 
     *  @property season
     *  @type CreativeWorkSeason
     */
    prototype.season = null;
    /**
     *  Schema.org/episodes
     *  An episode of a TV/radio series or season.
     * 
     *  @property episodes
     *  @type Episode
     */
    prototype.episodes = null;
    /**
     *  Schema.org/countryOfOrigin
     *  The country of the principal offices of the production company or individual responsible for the movie or program.
     * 
     *  @property countryOfOrigin
     *  @type Country
     */
    prototype.countryOfOrigin = null;
    /**
     *  Schema.org/musicBy
     *  The composer of the soundtrack.
     * 
     *  @property musicBy
     *  @type Person
     */
    prototype.musicBy = null;
    /**
     *  Schema.org/containsSeason
     *  A season that is part of the media series.
     * 
     *  @property containsSeason
     *  @type CreativeWorkSeason
     */
    prototype.containsSeason = null;
    /**
     *  Schema.org/directors
     *  A director of e.g. tv, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property directors
     *  @type Person
     */
    prototype.directors = null;
    /**
     *  Schema.org/numberOfSeasons
     *  The number of seasons in this series.
     * 
     *  @property numberOfSeasons
     *  @type Integer
     */
    prototype.numberOfSeasons = null;
    /**
     *  Schema.org/director
     *  A director of e.g. tv, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property director
     *  @type Person
     */
    prototype.director = null;
    /**
     *  Schema.org/productionCompany
     *  The production company or studio responsible for the item e.g. series, video game, episode etc.
     * 
     *  @property productionCompany
     *  @type Organization
     */
    prototype.productionCompany = null;
    /**
     *  Schema.org/actors
     *  An actor, e.g. in tv, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property actors
     *  @type Person
     */
    prototype.actors = null;
    /**
     *  Schema.org/episode
     *  An episode of a tv, radio or game media within a series or season.
     * 
     *  @property episode
     *  @type Episode
     */
    prototype.episode = null;
}, {seasons: "CreativeWorkSeason", actor: "Person", trailer: "VideoObject", season: "CreativeWorkSeason", episodes: "Episode", countryOfOrigin: "Country", musicBy: "Person", containsSeason: "CreativeWorkSeason", directors: "Person", director: "Person", productionCompany: "Organization", actors: "Person", episode: "Episode", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Article
 *  An article, such as a news article or piece of investigative report. Newspapers and magazines have articles of many different types and this is intended to cover them all.\n\nSee also [blog post](http://blog.schema.org/2014/09/schemaorg-support-for-bibliographic_2.html).
 * 
 *  @author schema.org
 *  @class Article
 *  @module org.schema
 *  @extends CreativeWork
 */
var Article = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Article";
};
Article = stjs.extend(Article, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/pagination
     *  Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".
     * 
     *  @property pagination
     *  @type Text
     */
    prototype.pagination = null;
    /**
     *  Schema.org/pageEnd
     *  The page on which the work ends; for example "138" or "xvi".
     * 
     *  @property pageEnd
     *  @type Integer
     */
    prototype.pageEnd = null;
    /**
     *  Schema.org/articleSection
     *  Articles may belong to one or more 'sections' in a magazine or newspaper, such as Sports, Lifestyle, etc.
     * 
     *  @property articleSection
     *  @type Text
     */
    prototype.articleSection = null;
    /**
     *  Schema.org/articleBody
     *  The actual body of the article.
     * 
     *  @property articleBody
     *  @type Text
     */
    prototype.articleBody = null;
    /**
     *  Schema.org/pageStart
     *  The page on which the work starts; for example "135" or "xiii".
     * 
     *  @property pageStart
     *  @type Integer
     */
    prototype.pageStart = null;
    /**
     *  Schema.org/wordCount
     *  The number of words in the text of the Article.
     * 
     *  @property wordCount
     *  @type Integer
     */
    prototype.wordCount = null;
}, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MusicPlaylist
 *  A collection of music tracks in playlist form.
 * 
 *  @author schema.org
 *  @class MusicPlaylist
 *  @module org.schema
 *  @extends CreativeWork
 */
var MusicPlaylist = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "MusicPlaylist";
};
MusicPlaylist = stjs.extend(MusicPlaylist, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/track
     *  A music recording (track)&#x2014;usually a single song. If an ItemList is given, the list should contain items of type MusicRecording.
     * 
     *  @property track
     *  @type MusicRecording
     */
    prototype.track = null;
    /**
     *  Schema.org/numTracks
     *  The number of tracks in this album or playlist.
     * 
     *  @property numTracks
     *  @type Integer
     */
    prototype.numTracks = null;
    /**
     *  Schema.org/tracks
     *  A music recording (track)&#x2014;usually a single song.
     * 
     *  @property tracks
     *  @type MusicRecording
     */
    prototype.tracks = null;
}, {track: "MusicRecording", tracks: "MusicRecording", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Recipe
 *  A recipe. For dietary restrictions covered by the recipe, a few common restrictions are enumerated via [[suitableForDiet]]. The [[keywords]] property can also be used to add more detail.
 * 
 *  @author schema.org
 *  @class Recipe
 *  @module org.schema
 *  @extends CreativeWork
 */
var Recipe = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Recipe";
};
Recipe = stjs.extend(Recipe, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/recipeYield
     *  The quantity produced by the recipe (for example, number of people served, number of servings, etc).
     * 
     *  @property recipeYield
     *  @type Text
     */
    prototype.recipeYield = null;
    /**
     *  Schema.org/recipeCategory
     *  The category of the recipe—for example, appetizer, entree, etc.
     * 
     *  @property recipeCategory
     *  @type Text
     */
    prototype.recipeCategory = null;
    /**
     *  Schema.org/prepTime
     *  The length of time it takes to prepare the recipe, in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).
     * 
     *  @property prepTime
     *  @type Duration
     */
    prototype.prepTime = null;
    /**
     *  Schema.org/recipeIngredient
     *  A single ingredient used in the recipe, e.g. sugar, flour or garlic.
     * 
     *  @property recipeIngredient
     *  @type Text
     */
    prototype.recipeIngredient = null;
    /**
     *  Schema.org/recipeInstructions
     *  A step or instruction involved in making the recipe.
     * 
     *  @property recipeInstructions
     *  @type ItemList
     */
    prototype.recipeInstructions = null;
    /**
     *  Schema.org/nutrition
     *  Nutrition information about the recipe or menu item.
     * 
     *  @property nutrition
     *  @type NutritionInformation
     */
    prototype.nutrition = null;
    /**
     *  Schema.org/suitableForDiet
     *  Indicates a dietary restriction or guideline for which this recipe or menu item is suitable, e.g. diabetic, halal etc.
     * 
     *  @property suitableForDiet
     *  @type RestrictedDiet
     */
    prototype.suitableForDiet = null;
    /**
     *  Schema.org/recipeCuisine
     *  The cuisine of the recipe (for example, French or Ethiopian).
     * 
     *  @property recipeCuisine
     *  @type Text
     */
    prototype.recipeCuisine = null;
    /**
     *  Schema.org/cookTime
     *  The time it takes to actually cook the dish, in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).
     * 
     *  @property cookTime
     *  @type Duration
     */
    prototype.cookTime = null;
    /**
     *  Schema.org/totalTime
     *  The total time it takes to prepare and cook the recipe, in [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601).
     * 
     *  @property totalTime
     *  @type Duration
     */
    prototype.totalTime = null;
    /**
     *  Schema.org/cookingMethod
     *  The method of cooking, such as Frying, Steaming, ...
     * 
     *  @property cookingMethod
     *  @type Text
     */
    prototype.cookingMethod = null;
    /**
     *  Schema.org/ingredients
     *  A single ingredient used in the recipe, e.g. sugar, flour or garlic.
     * 
     *  @property ingredients
     *  @type Text
     */
    prototype.ingredients = null;
}, {prepTime: "Duration", recipeInstructions: "ItemList", nutrition: "NutritionInformation", suitableForDiet: "RestrictedDiet", cookTime: "Duration", totalTime: "Duration", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MenuSection
 *  A sub-grouping of food or drink items in a menu. E.g. courses (such as 'Dinner', 'Breakfast', etc.), specific type of dishes (such as 'Meat', 'Vegan', 'Drinks', etc.), or some other classification made by the menu provider.
 * 
 *  @author schema.org
 *  @class MenuSection
 *  @module org.schema
 *  @extends CreativeWork
 */
var MenuSection = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "MenuSection";
};
MenuSection = stjs.extend(MenuSection, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/hasMenuItem
     *  A food or drink item contained in a menu or menu section.
     * 
     *  @property hasMenuItem
     *  @type MenuItem
     */
    prototype.hasMenuItem = null;
    /**
     *  Schema.org/hasMenuSection
     *  A subgrouping of the menu (by dishes, course, serving time period, etc.).
     * 
     *  @property hasMenuSection
     *  @type MenuSection
     */
    prototype.hasMenuSection = null;
}, {hasMenuItem: "MenuItem", hasMenuSection: "MenuSection", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Sculpture
 *  A piece of sculpture.
 * 
 *  @author schema.org
 *  @class Sculpture
 *  @module org.schema
 *  @extends CreativeWork
 */
var Sculpture = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Sculpture";
};
Sculpture = stjs.extend(Sculpture, CreativeWork, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Blog
 *  A blog.
 * 
 *  @author schema.org
 *  @class Blog
 *  @module org.schema
 *  @extends CreativeWork
 */
var Blog = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Blog";
};
Blog = stjs.extend(Blog, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/blogPosts
     *  The postings that are part of this blog.
     * 
     *  @property blogPosts
     *  @type BlogPosting
     */
    prototype.blogPosts = null;
    /**
     *  Schema.org/blogPost
     *  A posting that is part of this blog.
     * 
     *  @property blogPost
     *  @type BlogPosting
     */
    prototype.blogPost = null;
}, {blogPosts: "BlogPosting", blogPost: "BlogPosting", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MusicRecording
 *  A music recording (track), usually a single song.
 * 
 *  @author schema.org
 *  @class MusicRecording
 *  @module org.schema
 *  @extends CreativeWork
 */
var MusicRecording = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "MusicRecording";
};
MusicRecording = stjs.extend(MusicRecording, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/recordingOf
     *  The composition this track is a recording of.
     * 
     *  @property recordingOf
     *  @type MusicComposition
     */
    prototype.recordingOf = null;
    /**
     *  Schema.org/isrcCode
     *  The International Standard Recording Code for the recording.
     * 
     *  @property isrcCode
     *  @type Text
     */
    prototype.isrcCode = null;
    /**
     *  Schema.org/inAlbum
     *  The album to which this recording belongs.
     * 
     *  @property inAlbum
     *  @type MusicAlbum
     */
    prototype.inAlbum = null;
    /**
     *  Schema.org/inPlaylist
     *  The playlist to which this recording belongs.
     * 
     *  @property inPlaylist
     *  @type MusicPlaylist
     */
    prototype.inPlaylist = null;
    /**
     *  Schema.org/byArtist
     *  The artist that performed this album or recording.
     * 
     *  @property byArtist
     *  @type MusicGroup
     */
    prototype.byArtist = null;
    /**
     *  Schema.org/duration
     *  The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).
     * 
     *  @property duration
     *  @type Duration
     */
    prototype.duration = null;
}, {recordingOf: "MusicComposition", inAlbum: "MusicAlbum", inPlaylist: "MusicPlaylist", byArtist: "MusicGroup", duration: "Duration", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SoftwareSourceCode
 *  Computer programming source code. Example: Full (compile ready) solutions, code snippet samples, scripts, templates.
 * 
 *  @author schema.org
 *  @class SoftwareSourceCode
 *  @module org.schema
 *  @extends CreativeWork
 */
var SoftwareSourceCode = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "SoftwareSourceCode";
};
SoftwareSourceCode = stjs.extend(SoftwareSourceCode, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/targetProduct
     *  Target Operating System / Product to which the code applies.  If applies to several versions, just the product name can be used.
     * 
     *  @property targetProduct
     *  @type SoftwareApplication
     */
    prototype.targetProduct = null;
    /**
     *  Schema.org/codeRepository
     *  Link to the repository where the un-compiled, human readable code and related code is located (SVN, github, CodePlex).
     * 
     *  @property codeRepository
     *  @type URL
     */
    prototype.codeRepository = null;
    /**
     *  Schema.org/programmingLanguage
     *  The computer programming language.
     * 
     *  @property programmingLanguage
     *  @type Text
     */
    prototype.programmingLanguage = null;
    /**
     *  Schema.org/codeSampleType
     *  What type of code sample: full (compile ready) solution, code snippet, inline code, scripts, template.
     * 
     *  @property codeSampleType
     *  @type Text
     */
    prototype.codeSampleType = null;
    /**
     *  Schema.org/runtimePlatform
     *  Runtime platform or script interpreter dependencies (Example - Java v1, Python2.3, .Net Framework 3.0).
     * 
     *  @property runtimePlatform
     *  @type Text
     */
    prototype.runtimePlatform = null;
    /**
     *  Schema.org/sampleType
     *  What type of code sample: full (compile ready) solution, code snippet, inline code, scripts, template.
     * 
     *  @property sampleType
     *  @type Text
     */
    prototype.sampleType = null;
    /**
     *  Schema.org/runtime
     *  Runtime platform or script interpreter dependencies (Example - Java v1, Python2.3, .Net Framework 3.0).
     * 
     *  @property runtime
     *  @type Text
     */
    prototype.runtime = null;
}, {targetProduct: "SoftwareApplication", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/WebPageElement
 *  A web page element, like a table or an image.
 * 
 *  @author schema.org
 *  @class WebPageElement
 *  @module org.schema
 *  @extends CreativeWork
 */
var WebPageElement = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "WebPageElement";
};
WebPageElement = stjs.extend(WebPageElement, CreativeWork, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Comment
 *  A comment on an item - for example, a comment on a blog post. The comment's content is expressed via the [[text]] property, and its topic via [[about]], properties shared with all CreativeWorks.
 * 
 *  @author schema.org
 *  @class Comment
 *  @module org.schema
 *  @extends CreativeWork
 */
var Comment = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Comment";
};
Comment = stjs.extend(Comment, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/parentItem
     *  The parent of a question, answer or item in general.
     * 
     *  @property parentItem
     *  @type Question
     */
    prototype.parentItem = null;
    /**
     *  Schema.org/upvoteCount
     *  The number of upvotes this question, answer or comment has received from the community.
     * 
     *  @property upvoteCount
     *  @type Integer
     */
    prototype.upvoteCount = null;
    /**
     *  Schema.org/downvoteCount
     *  The number of downvotes this question, answer or comment has received from the community.
     * 
     *  @property downvoteCount
     *  @type Integer
     */
    prototype.downvoteCount = null;
}, {parentItem: "Question", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DataCatalog
 *  A collection of datasets.
 * 
 *  @author schema.org
 *  @class DataCatalog
 *  @module org.schema
 *  @extends CreativeWork
 */
var DataCatalog = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "DataCatalog";
};
DataCatalog = stjs.extend(DataCatalog, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/dataset
     *  A dataset contained in this catalog.
     * 
     *  @property dataset
     *  @type Dataset
     */
    prototype.dataset = null;
}, {dataset: "Dataset", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MusicComposition
 *  A musical composition.
 * 
 *  @author schema.org
 *  @class MusicComposition
 *  @module org.schema
 *  @extends CreativeWork
 */
var MusicComposition = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "MusicComposition";
};
MusicComposition = stjs.extend(MusicComposition, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/musicCompositionForm
     *  The type of composition (e.g. overture, sonata, symphony, etc.).
     * 
     *  @property musicCompositionForm
     *  @type Text
     */
    prototype.musicCompositionForm = null;
    /**
     *  Schema.org/includedComposition
     *  Smaller compositions included in this work (e.g. a movement in a symphony).
     * 
     *  @property includedComposition
     *  @type MusicComposition
     */
    prototype.includedComposition = null;
    /**
     *  Schema.org/lyricist
     *  The person who wrote the words.
     * 
     *  @property lyricist
     *  @type Person
     */
    prototype.lyricist = null;
    /**
     *  Schema.org/recordedAs
     *  An audio recording of the work.
     * 
     *  @property recordedAs
     *  @type MusicRecording
     */
    prototype.recordedAs = null;
    /**
     *  Schema.org/firstPerformance
     *  The date and place the work was first performed.
     * 
     *  @property firstPerformance
     *  @type SchemaEvent
     */
    prototype.firstPerformance = null;
    /**
     *  Schema.org/musicArrangement
     *  An arrangement derived from the composition.
     * 
     *  @property musicArrangement
     *  @type MusicComposition
     */
    prototype.musicArrangement = null;
    /**
     *  Schema.org/lyrics
     *  The words in the song.
     * 
     *  @property lyrics
     *  @type CreativeWork
     */
    prototype.lyrics = null;
    /**
     *  Schema.org/iswcCode
     *  The International Standard Musical Work Code for the composition.
     * 
     *  @property iswcCode
     *  @type Text
     */
    prototype.iswcCode = null;
    /**
     *  Schema.org/composer
     *  The person or organization who wrote a composition, or who is the composer of a work performed at some event.
     * 
     *  @property composer
     *  @type Organization
     */
    prototype.composer = null;
    /**
     *  Schema.org/musicalKey
     *  The key, mode, or scale this composition uses.
     * 
     *  @property musicalKey
     *  @type Text
     */
    prototype.musicalKey = null;
}, {includedComposition: "MusicComposition", lyricist: "Person", recordedAs: "MusicRecording", firstPerformance: "SchemaEvent", musicArrangement: "MusicComposition", lyrics: "CreativeWork", composer: "Organization", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Movie
 *  A movie.
 * 
 *  @author schema.org
 *  @class Movie
 *  @module org.schema
 *  @extends CreativeWork
 */
var Movie = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Movie";
};
Movie = stjs.extend(Movie, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/actor
     *  An actor, e.g. in tv, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property actor
     *  @type Person
     */
    prototype.actor = null;
    /**
     *  Schema.org/trailer
     *  The trailer of a movie or tv/radio series, season, episode, etc.
     * 
     *  @property trailer
     *  @type VideoObject
     */
    prototype.trailer = null;
    /**
     *  Schema.org/subtitleLanguage
     *  Languages in which subtitles/captions are available, in [IETF BCP 47 standard format](http://tools.ietf.org/html/bcp47).
     * 
     *  @property subtitleLanguage
     *  @type Text
     */
    prototype.subtitleLanguage = null;
    /**
     *  Schema.org/countryOfOrigin
     *  The country of the principal offices of the production company or individual responsible for the movie or program.
     * 
     *  @property countryOfOrigin
     *  @type Country
     */
    prototype.countryOfOrigin = null;
    /**
     *  Schema.org/musicBy
     *  The composer of the soundtrack.
     * 
     *  @property musicBy
     *  @type Person
     */
    prototype.musicBy = null;
    /**
     *  Schema.org/directors
     *  A director of e.g. tv, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property directors
     *  @type Person
     */
    prototype.directors = null;
    /**
     *  Schema.org/director
     *  A director of e.g. tv, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property director
     *  @type Person
     */
    prototype.director = null;
    /**
     *  Schema.org/productionCompany
     *  The production company or studio responsible for the item e.g. series, video game, episode etc.
     * 
     *  @property productionCompany
     *  @type Organization
     */
    prototype.productionCompany = null;
    /**
     *  Schema.org/duration
     *  The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).
     * 
     *  @property duration
     *  @type Duration
     */
    prototype.duration = null;
    /**
     *  Schema.org/actors
     *  An actor, e.g. in tv, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property actors
     *  @type Person
     */
    prototype.actors = null;
}, {actor: "Person", trailer: "VideoObject", countryOfOrigin: "Country", musicBy: "Person", directors: "Person", director: "Person", productionCompany: "Organization", duration: "Duration", actors: "Person", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Message
 *  A single message from a sender to one or more organizations or people.
 * 
 *  @author schema.org
 *  @class Message
 *  @module org.schema
 *  @extends CreativeWork
 */
var Message = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Message";
};
Message = stjs.extend(Message, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/dateRead
     *  The date/time at which the message has been read by the recipient if a single recipient exists.
     * 
     *  @property dateRead
     *  @type DateTime
     */
    prototype.dateRead = null;
    /**
     *  Schema.org/dateSent
     *  The date/time at which the message was sent.
     * 
     *  @property dateSent
     *  @type DateTime
     */
    prototype.dateSent = null;
    /**
     *  Schema.org/recipient
     *  A sub property of participant. The participant who is at the receiving end of the action.
     * 
     *  @property recipient
     *  @type Organization
     */
    prototype.recipient = null;
    /**
     *  Schema.org/messageAttachment
     *  A CreativeWork attached to the message.
     * 
     *  @property messageAttachment
     *  @type CreativeWork
     */
    prototype.messageAttachment = null;
    /**
     *  Schema.org/dateReceived
     *  The date/time the message was received if a single recipient exists.
     * 
     *  @property dateReceived
     *  @type DateTime
     */
    prototype.dateReceived = null;
    /**
     *  Schema.org/sender
     *  A sub property of participant. The participant who is at the sending end of the action.
     * 
     *  @property sender
     *  @type Audience
     */
    prototype.sender = null;
}, {recipient: "Organization", messageAttachment: "CreativeWork", sender: "Audience", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Photograph
 *  A photograph.
 * 
 *  @author schema.org
 *  @class Photograph
 *  @module org.schema
 *  @extends CreativeWork
 */
var Photograph = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Photograph";
};
Photograph = stjs.extend(Photograph, CreativeWork, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PublicationVolume
 *  A part of a successively published publication such as a periodical or multi-volume work, often numbered. It may represent a time span, such as a year.
 *  <p>
 *  <br/><br/>See also <a href="http://blog.schema.org/2014/09/schemaorg-support-for-bibliographic_2.html">blog post</a>.
 * 
 *  @author schema.org
 *  @class PublicationVolume
 *  @module org.schema
 *  @extends CreativeWork
 */
var PublicationVolume = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "PublicationVolume";
};
PublicationVolume = stjs.extend(PublicationVolume, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/pagination
     *  Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".
     * 
     *  @property pagination
     *  @type Text
     */
    prototype.pagination = null;
    /**
     *  Schema.org/pageEnd
     *  The page on which the work ends; for example "138" or "xvi".
     * 
     *  @property pageEnd
     *  @type Integer
     */
    prototype.pageEnd = null;
    /**
     *  Schema.org/volumeNumber
     *  Identifies the volume of publication or multi-part work; for example, "iii" or "2".
     * 
     *  @property volumeNumber
     *  @type Integer
     */
    prototype.volumeNumber = null;
    /**
     *  Schema.org/pageStart
     *  The page on which the work starts; for example "135" or "xiii".
     * 
     *  @property pageStart
     *  @type Integer
     */
    prototype.pageStart = null;
}, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Review
 *  A review of an item - for example, of a restaurant, movie, or store.
 * 
 *  @author schema.org
 *  @class Review
 *  @module org.schema
 *  @extends CreativeWork
 */
var Review = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Review";
};
Review = stjs.extend(Review, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/reviewRating
     *  The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.
     * 
     *  @property reviewRating
     *  @type Rating
     */
    prototype.reviewRating = null;
    /**
     *  Schema.org/itemReviewed
     *  The item that is being reviewed/rated.
     * 
     *  @property itemReviewed
     *  @type Thing
     */
    prototype.itemReviewed = null;
    /**
     *  Schema.org/reviewBody
     *  The actual body of the review.
     * 
     *  @property reviewBody
     *  @type Text
     */
    prototype.reviewBody = null;
}, {reviewRating: "Rating", itemReviewed: "Thing", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Episode
 *  A media episode (e.g. TV, radio, video game) which can be part of a series or season.
 * 
 *  @author schema.org
 *  @class Episode
 *  @module org.schema
 *  @extends CreativeWork
 */
var Episode = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Episode";
};
Episode = stjs.extend(Episode, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/actor
     *  An actor, e.g. in tv, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property actor
     *  @type Person
     */
    prototype.actor = null;
    /**
     *  Schema.org/partOfSeries
     *  The series to which this episode or season belongs.
     * 
     *  @property partOfSeries
     *  @type CreativeWorkSeries
     */
    prototype.partOfSeries = null;
    /**
     *  Schema.org/trailer
     *  The trailer of a movie or tv/radio series, season, episode, etc.
     * 
     *  @property trailer
     *  @type VideoObject
     */
    prototype.trailer = null;
    /**
     *  Schema.org/partOfSeason
     *  The season to which this episode belongs.
     * 
     *  @property partOfSeason
     *  @type CreativeWorkSeason
     */
    prototype.partOfSeason = null;
    /**
     *  Schema.org/musicBy
     *  The composer of the soundtrack.
     * 
     *  @property musicBy
     *  @type Person
     */
    prototype.musicBy = null;
    /**
     *  Schema.org/directors
     *  A director of e.g. tv, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property directors
     *  @type Person
     */
    prototype.directors = null;
    /**
     *  Schema.org/episodeNumber
     *  Position of the episode within an ordered group of episodes.
     * 
     *  @property episodeNumber
     *  @type Integer
     */
    prototype.episodeNumber = null;
    /**
     *  Schema.org/director
     *  A director of e.g. tv, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property director
     *  @type Person
     */
    prototype.director = null;
    /**
     *  Schema.org/productionCompany
     *  The production company or studio responsible for the item e.g. series, video game, episode etc.
     * 
     *  @property productionCompany
     *  @type Organization
     */
    prototype.productionCompany = null;
    /**
     *  Schema.org/actors
     *  An actor, e.g. in tv, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property actors
     *  @type Person
     */
    prototype.actors = null;
}, {actor: "Person", partOfSeries: "CreativeWorkSeries", trailer: "VideoObject", partOfSeason: "CreativeWorkSeason", musicBy: "Person", directors: "Person", director: "Person", productionCompany: "Organization", actors: "Person", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TVSeason
 *  Season dedicated to TV broadcast and associated online delivery.
 * 
 *  @author schema.org
 *  @class TVSeason
 *  @module org.schema
 *  @extends CreativeWork
 */
var TVSeason = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "TVSeason";
};
TVSeason = stjs.extend(TVSeason, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/partOfTVSeries
     *  The TV series to which this episode or season belongs.
     * 
     *  @property partOfTVSeries
     *  @type TVSeries
     */
    prototype.partOfTVSeries = null;
    /**
     *  Schema.org/countryOfOrigin
     *  The country of the principal offices of the production company or individual responsible for the movie or program.
     * 
     *  @property countryOfOrigin
     *  @type Country
     */
    prototype.countryOfOrigin = null;
}, {partOfTVSeries: "TVSeries", countryOfOrigin: "Country", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MediaObject
 *  A media object, such as an image, video, or audio object embedded in a web page or a downloadable dataset i.e. DataDownload. Note that a creative work may have many media objects associated with it on the same web page. For example, a page about a single song (MusicRecording) may have a music video (VideoObject), and a high and low bandwidth audio stream (2 AudioObject's).
 * 
 *  @author schema.org
 *  @class MediaObject
 *  @module org.schema
 *  @extends CreativeWork
 */
var MediaObject = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "MediaObject";
};
MediaObject = stjs.extend(MediaObject, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/uploadDate
     *  Date when this media object was uploaded to this site.
     * 
     *  @property uploadDate
     *  @type Date
     */
    prototype.uploadDate = null;
    /**
     *  Schema.org/playerType
     *  Player type required&#x2014;for example, Flash or Silverlight.
     * 
     *  @property playerType
     *  @type Text
     */
    prototype.playerType = null;
    /**
     *  Schema.org/height
     *  The height of the item.
     * 
     *  @property height
     *  @type Distance
     */
    prototype.height = null;
    /**
     *  Schema.org/bitrate
     *  The bitrate of the media object.
     * 
     *  @property bitrate
     *  @type Text
     */
    prototype.bitrate = null;
    /**
     *  Schema.org/requiresSubscription
     *  Indicates if use of the media require a subscription  (either paid or free). Allowed values are ```true``` or ```false``` (note that an earlier version had 'yes', 'no').
     * 
     *  @property requiresSubscription
     *  @type Boolean
     */
    prototype.requiresSubscription = null;
    /**
     *  Schema.org/regionsAllowed
     *  The regions where the media is allowed. If not specified, then it's assumed to be allowed everywhere. Specify the countries in [ISO 3166 format](http://en.wikipedia.org/wiki/ISO_3166).
     * 
     *  @property regionsAllowed
     *  @type Place
     */
    prototype.regionsAllowed = null;
    /**
     *  Schema.org/expires
     *  Date the content expires and is no longer useful or available. Useful for videos.
     * 
     *  @property expires
     *  @type Date
     */
    prototype.expires = null;
    /**
     *  Schema.org/contentSize
     *  File size in (mega/kilo) bytes.
     * 
     *  @property contentSize
     *  @type Text
     */
    prototype.contentSize = null;
    /**
     *  Schema.org/embedUrl
     *  A URL pointing to a player for a specific video. In general, this is the information in the ```src``` element of an ```embed``` tag and should not be the same as the content of the ```loc``` tag.
     * 
     *  @property embedUrl
     *  @type URL
     */
    prototype.embedUrl = null;
    /**
     *  Schema.org/width
     *  The width of the item.
     * 
     *  @property width
     *  @type Distance
     */
    prototype.width = null;
    /**
     *  Schema.org/contentUrl
     *  Actual bytes of the media object, for example the image file or video file.
     * 
     *  @property contentUrl
     *  @type URL
     */
    prototype.contentUrl = null;
    /**
     *  Schema.org/associatedArticle
     *  A NewsArticle associated with the Media Object.
     * 
     *  @property associatedArticle
     *  @type NewsArticle
     */
    prototype.associatedArticle = null;
    /**
     *  Schema.org/productionCompany
     *  The production company or studio responsible for the item e.g. series, video game, episode etc.
     * 
     *  @property productionCompany
     *  @type Organization
     */
    prototype.productionCompany = null;
    /**
     *  Schema.org/duration
     *  The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).
     * 
     *  @property duration
     *  @type Duration
     */
    prototype.duration = null;
    /**
     *  Schema.org/encodesCreativeWork
     *  The CreativeWork encoded by this media object.
     * 
     *  @property encodesCreativeWork
     *  @type CreativeWork
     */
    prototype.encodesCreativeWork = null;
    /**
     *  Schema.org/encodingFormat
     *  mp3, mpeg4, etc.
     * 
     *  @property encodingFormat
     *  @type Text
     */
    prototype.encodingFormat = null;
}, {height: "Distance", regionsAllowed: "Place", width: "Distance", associatedArticle: "NewsArticle", productionCompany: "Organization", duration: "Duration", encodesCreativeWork: "CreativeWork", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Conversation
 *  One or more messages between organizations or people on a particular topic. Individual messages can be linked to the conversation with isPartOf or hasPart properties.
 * 
 *  @author schema.org
 *  @class Conversation
 *  @module org.schema
 *  @extends CreativeWork
 */
var Conversation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Conversation";
};
Conversation = stjs.extend(Conversation, CreativeWork, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PublicationIssue
 *  A part of a successively published publication such as a periodical or publication volume, often numbered, usually containing a grouping of works such as articles.\n\n[blog post](http://blog.schema.org/2014/09/schemaorg-support-for-bibliographic_2.html).
 * 
 *  @author schema.org
 *  @class PublicationIssue
 *  @module org.schema
 *  @extends CreativeWork
 */
var PublicationIssue = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "PublicationIssue";
};
PublicationIssue = stjs.extend(PublicationIssue, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/pagination
     *  Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55" or "10-12, 46-49".
     * 
     *  @property pagination
     *  @type Text
     */
    prototype.pagination = null;
    /**
     *  Schema.org/issueNumber
     *  Identifies the issue of publication; for example, "iii" or "2".
     * 
     *  @property issueNumber
     *  @type Text
     */
    prototype.issueNumber = null;
    /**
     *  Schema.org/pageEnd
     *  The page on which the work ends; for example "138" or "xvi".
     * 
     *  @property pageEnd
     *  @type Integer
     */
    prototype.pageEnd = null;
    /**
     *  Schema.org/pageStart
     *  The page on which the work starts; for example "135" or "xiii".
     * 
     *  @property pageStart
     *  @type Integer
     */
    prototype.pageStart = null;
}, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Course
 *  A description of an educational course which may be offered as distinct instances at which take place at different times or take place at different locations, or be offered through different media or modes of study. An educational course is a sequence of one or more educational events and/or creative works which aims to build knowledge, competence or ability of learners.
 * 
 *  @author schema.org
 *  @class Course
 *  @module org.schema
 *  @extends CreativeWork
 */
var Course = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Course";
};
Course = stjs.extend(Course, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/courseCode
     *  The identifier for the [[Course]] used by the course [[provider]] (e.g. CS101 or 6.001).
     * 
     *  @property courseCode
     *  @type Text
     */
    prototype.courseCode = null;
    /**
     *  Schema.org/coursePrerequisites
     *  Requirements for taking the Course. May be completion of another [[Course]] or a textual description like "permission of instructor". Requirements may be a pre-requisite competency, referenced using [[AlignmentObject]].
     * 
     *  @property coursePrerequisites
     *  @type Text
     */
    prototype.coursePrerequisites = null;
    /**
     *  Schema.org/hasCourseInstance
     *  An offering of the course at a specific time and place or through specific media or mode of study or to a specific section of students.
     * 
     *  @property hasCourseInstance
     *  @type CourseInstance
     */
    prototype.hasCourseInstance = null;
}, {hasCourseInstance: "CourseInstance", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/WebPage
 *  A web page. Every web page is implicitly assumed to be declared to be of type WebPage, so the various properties about that webpage, such as <code>breadcrumb</code> may be used. We recommend explicit declaration if these properties are specified, but if they are found outside of an itemscope, they will be assumed to be about the page.
 * 
 *  @author schema.org
 *  @class WebPage
 *  @module org.schema
 *  @extends CreativeWork
 */
var WebPage = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "WebPage";
};
WebPage = stjs.extend(WebPage, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/lastReviewed
     *  Date on which the content on this web page was last reviewed for accuracy and/or completeness.
     * 
     *  @property lastReviewed
     *  @type Date
     */
    prototype.lastReviewed = null;
    /**
     *  Schema.org/breadcrumb
     *  A set of links that can help a user understand and navigate a website hierarchy.
     * 
     *  @property breadcrumb
     *  @type Text
     */
    prototype.breadcrumb = null;
    /**
     *  Schema.org/significantLink
     *  One of the more significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.
     * 
     *  @property significantLink
     *  @type URL
     */
    prototype.significantLink = null;
    /**
     *  Schema.org/relatedLink
     *  A link related to this web page, for example to other related web pages.
     * 
     *  @property relatedLink
     *  @type URL
     */
    prototype.relatedLink = null;
    /**
     *  Schema.org/mainContentOfPage
     *  Indicates if this web page element is the main subject of the page.
     * 
     *  @property mainContentOfPage
     *  @type WebPageElement
     */
    prototype.mainContentOfPage = null;
    /**
     *  Schema.org/reviewedBy
     *  People or organizations that have reviewed the content on this web page for accuracy and/or completeness.
     * 
     *  @property reviewedBy
     *  @type Organization
     */
    prototype.reviewedBy = null;
    /**
     *  Schema.org/primaryImageOfPage
     *  Indicates the main image on the page.
     * 
     *  @property primaryImageOfPage
     *  @type ImageObject
     */
    prototype.primaryImageOfPage = null;
    /**
     *  Schema.org/significantLinks
     *  The most significant URLs on the page. Typically, these are the non-navigation links that are clicked on the most.
     * 
     *  @property significantLinks
     *  @type URL
     */
    prototype.significantLinks = null;
    /**
     *  Schema.org/specialty
     *  One of the domain specialities to which this web page's content applies.
     * 
     *  @property specialty
     *  @type Specialty
     */
    prototype.specialty = null;
}, {mainContentOfPage: "WebPageElement", reviewedBy: "Organization", primaryImageOfPage: "ImageObject", specialty: "Specialty", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/CreativeWorkSeries
 *  A CreativeWorkSeries in schema.org is a group of related items, typically but not necessarily of the same kind. CreativeWorkSeries are usually organized into some order, often chronological. Unlike [[ItemList]] which is a general purpose data structure for lists of things, the emphasis with CreativeWorkSeries is on published materials (written e.g. books and periodicals, or media such as tv, radio and games).\n\nSpecific subtypes are available for describing [[TVSeries]], [[RadioSeries]], [[MovieSeries]], [[BookSeries]], [[Periodical]] and [[VideoGameSeries]]. In each case, the [[hasPart]] / [[isPartOf]] properties can be used to relate the CreativeWorkSeries to its parts. The general CreativeWorkSeries type serves largely just to organize these more specific and practical subtypes.\n\nIt is common for properties applicable to an item from the series to be usefully applied to the containing group. Schema.org attempts to anticipate some of these cases, but publishers should be free to apply properties of the series parts to the series as a whole wherever they seem appropriate.
 * 
 *  @author schema.org
 *  @class CreativeWorkSeries
 *  @module org.schema
 *  @extends CreativeWork
 */
var CreativeWorkSeries = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "CreativeWorkSeries";
};
CreativeWorkSeries = stjs.extend(CreativeWorkSeries, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/endDate
     *  The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).
     * 
     *  @property endDate
     *  @type DateTime
     */
    prototype.endDate = null;
    /**
     *  Schema.org/startDate
     *  The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).
     * 
     *  @property startDate
     *  @type Date
     */
    prototype.startDate = null;
}, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Book
 *  A book.
 * 
 *  @author schema.org
 *  @class Book
 *  @module org.schema
 *  @extends CreativeWork
 */
var Book = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Book";
};
Book = stjs.extend(Book, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/isbn
     *  The ISBN of the book.
     * 
     *  @property isbn
     *  @type Text
     */
    prototype.isbn = null;
    /**
     *  Schema.org/bookEdition
     *  The edition of the book.
     * 
     *  @property bookEdition
     *  @type Text
     */
    prototype.bookEdition = null;
    /**
     *  Schema.org/bookFormat
     *  The format of the book.
     * 
     *  @property bookFormat
     *  @type BookFormatType
     */
    prototype.bookFormat = null;
    /**
     *  Schema.org/numberOfPages
     *  The number of pages in the book.
     * 
     *  @property numberOfPages
     *  @type Integer
     */
    prototype.numberOfPages = null;
    /**
     *  Schema.org/illustrator
     *  The illustrator of the book.
     * 
     *  @property illustrator
     *  @type Person
     */
    prototype.illustrator = null;
}, {bookFormat: "BookFormatType", illustrator: "Person", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/CreativeWorkSeason
 *  A media season e.g. tv, radio, video game etc.
 * 
 *  @author schema.org
 *  @class CreativeWorkSeason
 *  @module org.schema
 *  @extends CreativeWork
 */
var CreativeWorkSeason = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "CreativeWorkSeason";
};
CreativeWorkSeason = stjs.extend(CreativeWorkSeason, CreativeWork, [], function(constructor, prototype) {
    /**
     *  Schema.org/actor
     *  An actor, e.g. in tv, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property actor
     *  @type Person
     */
    prototype.actor = null;
    /**
     *  Schema.org/partOfSeries
     *  The series to which this episode or season belongs.
     * 
     *  @property partOfSeries
     *  @type CreativeWorkSeries
     */
    prototype.partOfSeries = null;
    /**
     *  Schema.org/numberOfEpisodes
     *  The number of episodes in this season or series.
     * 
     *  @property numberOfEpisodes
     *  @type Integer
     */
    prototype.numberOfEpisodes = null;
    /**
     *  Schema.org/trailer
     *  The trailer of a movie or tv/radio series, season, episode, etc.
     * 
     *  @property trailer
     *  @type VideoObject
     */
    prototype.trailer = null;
    /**
     *  Schema.org/endDate
     *  The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).
     * 
     *  @property endDate
     *  @type DateTime
     */
    prototype.endDate = null;
    /**
     *  Schema.org/episodes
     *  An episode of a TV/radio series or season.
     * 
     *  @property episodes
     *  @type Episode
     */
    prototype.episodes = null;
    /**
     *  Schema.org/startDate
     *  The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).
     * 
     *  @property startDate
     *  @type Date
     */
    prototype.startDate = null;
    /**
     *  Schema.org/director
     *  A director of e.g. tv, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property director
     *  @type Person
     */
    prototype.director = null;
    /**
     *  Schema.org/productionCompany
     *  The production company or studio responsible for the item e.g. series, video game, episode etc.
     * 
     *  @property productionCompany
     *  @type Organization
     */
    prototype.productionCompany = null;
    /**
     *  Schema.org/episode
     *  An episode of a tv, radio or game media within a series or season.
     * 
     *  @property episode
     *  @type Episode
     */
    prototype.episode = null;
    /**
     *  Schema.org/seasonNumber
     *  Position of the season within an ordered group of seasons.
     * 
     *  @property seasonNumber
     *  @type Text
     */
    prototype.seasonNumber = null;
}, {actor: "Person", partOfSeries: "CreativeWorkSeries", trailer: "VideoObject", episodes: "Episode", director: "Person", productionCompany: "Organization", episode: "Episode", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Series
 *  <p>
 *  A Series in schema.org is a group of related items, typically but not necessarily of the same kind.
 * 
 *  @author schema.org
 *  @class Series
 *  @module org.schema
 *  @extends CreativeWork
 */
var Series = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreativeWork.call(this);
    this.context = "http://schema.org/";
    this.type = "Series";
};
Series = stjs.extend(Series, CreativeWork, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/UserComments
 *  UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].
 * 
 *  @author schema.org
 *  @class UserComments
 *  @module org.schema
 *  @extends UserInteraction
 */
var UserComments = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    UserInteraction.call(this);
    this.context = "http://schema.org/";
    this.type = "UserComments";
};
UserComments = stjs.extend(UserComments, UserInteraction, [], function(constructor, prototype) {
    /**
     *  Schema.org/discusses
     *  Specifies the CreativeWork associated with the UserComment.
     * 
     *  @property discusses
     *  @type CreativeWork
     */
    prototype.discusses = null;
    /**
     *  Schema.org/commentText
     *  The text of the UserComment.
     * 
     *  @property commentText
     *  @type Text
     */
    prototype.commentText = null;
    /**
     *  Schema.org/commentTime
     *  The time at which the UserComment was made.
     * 
     *  @property commentTime
     *  @type Date
     */
    prototype.commentTime = null;
    /**
     *  Schema.org/creator
     *  The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.
     * 
     *  @property creator
     *  @type Person
     */
    prototype.creator = null;
    /**
     *  Schema.org/replyToUrl
     *  The URL at which a reply may be posted to the specified UserComment.
     * 
     *  @property replyToUrl
     *  @type URL
     */
    prototype.replyToUrl = null;
}, {discusses: "CreativeWork", creator: "Person", about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/UserCheckins
 *  UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].
 * 
 *  @author schema.org
 *  @class UserCheckins
 *  @module org.schema
 *  @extends UserInteraction
 */
var UserCheckins = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    UserInteraction.call(this);
    this.context = "http://schema.org/";
    this.type = "UserCheckins";
};
UserCheckins = stjs.extend(UserCheckins, UserInteraction, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/UserLikes
 *  UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].
 * 
 *  @author schema.org
 *  @class UserLikes
 *  @module org.schema
 *  @extends UserInteraction
 */
var UserLikes = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    UserInteraction.call(this);
    this.context = "http://schema.org/";
    this.type = "UserLikes";
};
UserLikes = stjs.extend(UserLikes, UserInteraction, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/UserBlocks
 *  UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].
 * 
 *  @author schema.org
 *  @class UserBlocks
 *  @module org.schema
 *  @extends UserInteraction
 */
var UserBlocks = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    UserInteraction.call(this);
    this.context = "http://schema.org/";
    this.type = "UserBlocks";
};
UserBlocks = stjs.extend(UserBlocks, UserInteraction, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/UserPlays
 *  UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].
 * 
 *  @author schema.org
 *  @class UserPlays
 *  @module org.schema
 *  @extends UserInteraction
 */
var UserPlays = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    UserInteraction.call(this);
    this.context = "http://schema.org/";
    this.type = "UserPlays";
};
UserPlays = stjs.extend(UserPlays, UserInteraction, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/UserPlusOnes
 *  UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].
 * 
 *  @author schema.org
 *  @class UserPlusOnes
 *  @module org.schema
 *  @extends UserInteraction
 */
var UserPlusOnes = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    UserInteraction.call(this);
    this.context = "http://schema.org/";
    this.type = "UserPlusOnes";
};
UserPlusOnes = stjs.extend(UserPlusOnes, UserInteraction, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/UserPageVisits
 *  UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].
 * 
 *  @author schema.org
 *  @class UserPageVisits
 *  @module org.schema
 *  @extends UserInteraction
 */
var UserPageVisits = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    UserInteraction.call(this);
    this.context = "http://schema.org/";
    this.type = "UserPageVisits";
};
UserPageVisits = stjs.extend(UserPageVisits, UserInteraction, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/UserDownloads
 *  UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].
 * 
 *  @author schema.org
 *  @class UserDownloads
 *  @module org.schema
 *  @extends UserInteraction
 */
var UserDownloads = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    UserInteraction.call(this);
    this.context = "http://schema.org/";
    this.type = "UserDownloads";
};
UserDownloads = stjs.extend(UserDownloads, UserInteraction, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/UserTweets
 *  UserInteraction and its subtypes is an old way of talking about users interacting with pages. It is generally better to use [[Action]]-based vocabulary, alongside types such as [[Comment]].
 * 
 *  @author schema.org
 *  @class UserTweets
 *  @module org.schema
 *  @extends UserInteraction
 */
var UserTweets = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    UserInteraction.call(this);
    this.context = "http://schema.org/";
    this.type = "UserTweets";
};
UserTweets = stjs.extend(UserTweets, UserInteraction, [], null, {about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BroadcastEvent
 *  An over the air or online broadcast event.
 * 
 *  @author schema.org
 *  @class BroadcastEvent
 *  @module org.schema
 *  @extends PublicationEvent
 */
var BroadcastEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    PublicationEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "BroadcastEvent";
};
BroadcastEvent = stjs.extend(BroadcastEvent, PublicationEvent, [], function(constructor, prototype) {
    /**
     *  Schema.org/videoFormat
     *  The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).
     * 
     *  @property videoFormat
     *  @type Text
     */
    prototype.videoFormat = null;
    /**
     *  Schema.org/isLiveBroadcast
     *  True is the broadcast is of a live event.
     * 
     *  @property isLiveBroadcast
     *  @type Boolean
     */
    prototype.isLiveBroadcast = null;
    /**
     *  Schema.org/broadcastOfEvent
     *  The event being broadcast such as a sporting event or awards ceremony.
     * 
     *  @property broadcastOfEvent
     *  @type SchemaEvent
     */
    prototype.broadcastOfEvent = null;
}, {broadcastOfEvent: "SchemaEvent", publishedOn: "BroadcastService", about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/OnDemandEvent
 *  A publication event e.g. catch-up TV or radio podcast, during which a program is available on-demand.
 * 
 *  @author schema.org
 *  @class OnDemandEvent
 *  @module org.schema
 *  @extends PublicationEvent
 */
var OnDemandEvent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    PublicationEvent.call(this);
    this.context = "http://schema.org/";
    this.type = "OnDemandEvent";
};
OnDemandEvent = stjs.extend(OnDemandEvent, PublicationEvent, [], null, {publishedOn: "BroadcastService", about: "Thing", funder: "Person", workFeatured: "CreativeWork", audience: "Audience", actor: "Person", performers: "Organization", contributor: "Organization", organizer: "Person", attendees: "Person", aggregateRating: "AggregateRating", subEvent: "SchemaEvent", subEvents: "SchemaEvent", offers: "Offer", attendee: "Organization", workPerformed: "CreativeWork", eventStatus: "EventStatusType", director: "Person", superEvent: "SchemaEvent", duration: "Duration", translator: "Person", inLanguage: "Language", review: "Review", sponsor: "Organization", location: "PostalAddress", recordedIn: "CreativeWork", composer: "Organization", performer: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/State
 *  A state or province of a country.
 * 
 *  @author schema.org
 *  @class State
 *  @module org.schema
 *  @extends AdministrativeArea
 */
var State = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    AdministrativeArea.call(this);
    this.context = "http://schema.org/";
    this.type = "State";
};
State = stjs.extend(State, AdministrativeArea, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Country
 *  A country.
 * 
 *  @author schema.org
 *  @class Country
 *  @module org.schema
 *  @extends AdministrativeArea
 */
var Country = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    AdministrativeArea.call(this);
    this.context = "http://schema.org/";
    this.type = "Country";
};
Country = stjs.extend(Country, AdministrativeArea, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/City
 *  A city or town.
 * 
 *  @author schema.org
 *  @class City
 *  @module org.schema
 *  @extends AdministrativeArea
 */
var City = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    AdministrativeArea.call(this);
    this.context = "http://schema.org/";
    this.type = "City";
};
City = stjs.extend(City, AdministrativeArea, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TaxiStand
 *  A taxi stand.
 * 
 *  @author schema.org
 *  @class TaxiStand
 *  @module org.schema
 *  @extends CivicStructure
 */
var TaxiStand = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "TaxiStand";
};
TaxiStand = stjs.extend(TaxiStand, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Hospital
 *  A hospital.
 * 
 *  @author schema.org
 *  @class Hospital
 *  @module org.schema
 *  @extends CivicStructure
 */
var Hospital = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "Hospital";
};
Hospital = stjs.extend(Hospital, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Museum
 *  A museum.
 * 
 *  @author schema.org
 *  @class Museum
 *  @module org.schema
 *  @extends CivicStructure
 */
var Museum = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "Museum";
};
Museum = stjs.extend(Museum, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/RVPark
 *  A place offering space for "Recreational Vehicles", Caravans, mobile homes and the like.
 * 
 *  @author schema.org
 *  @class RVPark
 *  @module org.schema
 *  @extends CivicStructure
 */
var RVPark = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "RVPark";
};
RVPark = stjs.extend(RVPark, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Aquarium
 *  Aquarium.
 * 
 *  @author schema.org
 *  @class Aquarium
 *  @module org.schema
 *  @extends CivicStructure
 */
var Aquarium = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "Aquarium";
};
Aquarium = stjs.extend(Aquarium, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Airport
 *  An airport.
 * 
 *  @author schema.org
 *  @class Airport
 *  @module org.schema
 *  @extends CivicStructure
 */
var Airport = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "Airport";
};
Airport = stjs.extend(Airport, CivicStructure, [], function(constructor, prototype) {
    /**
     *  Schema.org/iataCode
     *  IATA identifier for an airline or airport.
     * 
     *  @property iataCode
     *  @type Text
     */
    prototype.iataCode = null;
    /**
     *  Schema.org/icaoCode
     *  ICAO identifier for an airport.
     * 
     *  @property icaoCode
     *  @type Text
     */
    prototype.icaoCode = null;
}, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Beach
 *  Beach.
 * 
 *  @author schema.org
 *  @class Beach
 *  @module org.schema
 *  @extends CivicStructure
 */
var Beach = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "Beach";
};
Beach = stjs.extend(Beach, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ParkingFacility
 *  A parking lot or other parking facility.
 * 
 *  @author schema.org
 *  @class ParkingFacility
 *  @module org.schema
 *  @extends CivicStructure
 */
var ParkingFacility = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "ParkingFacility";
};
ParkingFacility = stjs.extend(ParkingFacility, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/EventVenue
 *  An event venue.
 * 
 *  @author schema.org
 *  @class EventVenue
 *  @module org.schema
 *  @extends CivicStructure
 */
var EventVenue = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "EventVenue";
};
EventVenue = stjs.extend(EventVenue, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/GovernmentBuilding
 *  A government building.
 * 
 *  @author schema.org
 *  @class GovernmentBuilding
 *  @module org.schema
 *  @extends CivicStructure
 */
var GovernmentBuilding = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "GovernmentBuilding";
};
GovernmentBuilding = stjs.extend(GovernmentBuilding, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Campground
 *  A camping site, campsite, or campground is a place used for overnight stay in the outdoors. In British English a campsite is an area, usually divided into a number of pitches, where people can camp overnight using tents or camper vans or caravans; this British English use of the word is synonymous with the American English expression campground. In American English the term campsite generally means an area where an individual, family, group, or military unit can pitch a tent or parks a camper; a campground may contain many campsites (Source: Wikipedia, the free encyclopedia, see <a href="http://en.wikipedia.org/wiki/Campsite">http://en.wikipedia.org/wiki/Campsite</a>).
 *  <br /><br />
 *  See also the <a href="/docs/hotels.html">dedicated document on the use of schema.org for marking up hotels and other forms of accommodations</a>.
 * 
 *  @author schema.org
 *  @class Campground
 *  @module org.schema
 *  @extends CivicStructure
 */
var Campground = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "Campground";
};
Campground = stjs.extend(Campground, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PlaceOfWorship
 *  Place of worship, such as a church, synagogue, or mosque.
 * 
 *  @author schema.org
 *  @class PlaceOfWorship
 *  @module org.schema
 *  @extends CivicStructure
 */
var PlaceOfWorship = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "PlaceOfWorship";
};
PlaceOfWorship = stjs.extend(PlaceOfWorship, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MovieTheater
 *  A movie theater.
 * 
 *  @author schema.org
 *  @class MovieTheater
 *  @module org.schema
 *  @extends CivicStructure
 */
var MovieTheater = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "MovieTheater";
};
MovieTheater = stjs.extend(MovieTheater, CivicStructure, [], function(constructor, prototype) {
    /**
     *  Schema.org/screenCount
     *  The number of screens in the movie theater.
     * 
     *  @property screenCount
     *  @type Number
     */
    prototype.screenCount = null;
}, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BusStop
 *  A bus stop.
 * 
 *  @author schema.org
 *  @class BusStop
 *  @module org.schema
 *  @extends CivicStructure
 */
var BusStop = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "BusStop";
};
BusStop = stjs.extend(BusStop, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/FireStation
 *  A fire station. With firemen.
 * 
 *  @author schema.org
 *  @class FireStation
 *  @module org.schema
 *  @extends CivicStructure
 */
var FireStation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "FireStation";
};
FireStation = stjs.extend(FireStation, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Bridge
 *  A bridge.
 * 
 *  @author schema.org
 *  @class Bridge
 *  @module org.schema
 *  @extends CivicStructure
 */
var Bridge = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "Bridge";
};
Bridge = stjs.extend(Bridge, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Cemetery
 *  A graveyard.
 * 
 *  @author schema.org
 *  @class Cemetery
 *  @module org.schema
 *  @extends CivicStructure
 */
var Cemetery = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "Cemetery";
};
Cemetery = stjs.extend(Cemetery, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BusStation
 *  A bus station.
 * 
 *  @author schema.org
 *  @class BusStation
 *  @module org.schema
 *  @extends CivicStructure
 */
var BusStation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "BusStation";
};
BusStation = stjs.extend(BusStation, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Crematorium
 *  A crematorium.
 * 
 *  @author schema.org
 *  @class Crematorium
 *  @module org.schema
 *  @extends CivicStructure
 */
var Crematorium = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "Crematorium";
};
Crematorium = stjs.extend(Crematorium, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TrainStation
 *  A train station.
 * 
 *  @author schema.org
 *  @class TrainStation
 *  @module org.schema
 *  @extends CivicStructure
 */
var TrainStation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "TrainStation";
};
TrainStation = stjs.extend(TrainStation, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PoliceStation
 *  A police station.
 * 
 *  @author schema.org
 *  @class PoliceStation
 *  @module org.schema
 *  @extends CivicStructure
 */
var PoliceStation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "PoliceStation";
};
PoliceStation = stjs.extend(PoliceStation, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Zoo
 *  A zoo.
 * 
 *  @author schema.org
 *  @class Zoo
 *  @module org.schema
 *  @extends CivicStructure
 */
var Zoo = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "Zoo";
};
Zoo = stjs.extend(Zoo, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PerformingArtsTheater
 *  A theater or other performing art center.
 * 
 *  @author schema.org
 *  @class PerformingArtsTheater
 *  @module org.schema
 *  @extends CivicStructure
 */
var PerformingArtsTheater = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "PerformingArtsTheater";
};
PerformingArtsTheater = stjs.extend(PerformingArtsTheater, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MusicVenue
 *  A music venue.
 * 
 *  @author schema.org
 *  @class MusicVenue
 *  @module org.schema
 *  @extends CivicStructure
 */
var MusicVenue = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "MusicVenue";
};
MusicVenue = stjs.extend(MusicVenue, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Playground
 *  A playground.
 * 
 *  @author schema.org
 *  @class Playground
 *  @module org.schema
 *  @extends CivicStructure
 */
var Playground = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "Playground";
};
Playground = stjs.extend(Playground, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Park
 *  A park.
 * 
 *  @author schema.org
 *  @class Park
 *  @module org.schema
 *  @extends CivicStructure
 */
var Park = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "Park";
};
Park = stjs.extend(Park, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SubwayStation
 *  A subway station.
 * 
 *  @author schema.org
 *  @class SubwayStation
 *  @module org.schema
 *  @extends CivicStructure
 */
var SubwayStation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CivicStructure.call(this);
    this.context = "http://schema.org/";
    this.type = "SubwayStation";
};
SubwayStation = stjs.extend(SubwayStation, CivicStructure, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Apartment
 *  An apartment (in American English) or flat (in British English) is a self-contained housing unit (a type of residential real estate) that occupies only part of a building (Source: Wikipedia, the free encyclopedia, see <a href="http://en.wikipedia.org/wiki/Apartment">http://en.wikipedia.org/wiki/Apartment</a>).
 * 
 *  @author schema.org
 *  @class Apartment
 *  @module org.schema
 *  @extends Accommodation
 */
var Apartment = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Accommodation.call(this);
    this.context = "http://schema.org/";
    this.type = "Apartment";
};
Apartment = stjs.extend(Apartment, Accommodation, [], function(constructor, prototype) {
    /**
     *  Schema.org/occupancy
     *  The allowed total occupancy for the accommodation in persons (including infants etc). For individual accommodations, this is not necessarily the legal maximum but defines the permitted usage as per the contractual agreement (e.g. a double room used by a single person).
     *  Typical unit code(s): C62 for person
     * 
     *  @property occupancy
     *  @type QuantitativeValue
     */
    prototype.occupancy = null;
    /**
     *  Schema.org/numberOfRooms
     *  The number of rooms (excluding bathrooms and closets) of the acccommodation or lodging business.
     *  Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.
     * 
     *  @property numberOfRooms
     *  @type Number
     */
    prototype.numberOfRooms = null;
}, {occupancy: "QuantitativeValue", floorSize: "QuantitativeValue", amenityFeature: "LocationFeatureSpecification", photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Room
 *  A room is a distinguishable space within a structure, usually separated from other spaces by interior walls. (Source: Wikipedia, the free encyclopedia, see <a href="http://en.wikipedia.org/wiki/Room">http://en.wikipedia.org/wiki/Room</a>).
 *  <br /><br />
 *  See also the <a href="/docs/hotels.html">dedicated document on the use of schema.org for marking up hotels and other forms of accommodations</a>.
 * 
 *  @author schema.org
 *  @class Room
 *  @module org.schema
 *  @extends Accommodation
 */
var Room = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Accommodation.call(this);
    this.context = "http://schema.org/";
    this.type = "Room";
};
Room = stjs.extend(Room, Accommodation, [], null, {floorSize: "QuantitativeValue", amenityFeature: "LocationFeatureSpecification", photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/House
 *  A house is a building or structure that has the ability to be occupied for habitation by humans or other creatures (Source: Wikipedia, the free encyclopedia, see <a href="http://en.wikipedia.org/wiki/House">http://en.wikipedia.org/wiki/House</a>).
 * 
 *  @author schema.org
 *  @class House
 *  @module org.schema
 *  @extends Accommodation
 */
var House = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Accommodation.call(this);
    this.context = "http://schema.org/";
    this.type = "House";
};
House = stjs.extend(House, Accommodation, [], function(constructor, prototype) {
    /**
     *  Schema.org/numberOfRooms
     *  The number of rooms (excluding bathrooms and closets) of the acccommodation or lodging business.
     *  Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.
     * 
     *  @property numberOfRooms
     *  @type Number
     */
    prototype.numberOfRooms = null;
}, {floorSize: "QuantitativeValue", amenityFeature: "LocationFeatureSpecification", photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Suite
 *  A suite in a hotel or other public accommodation, denotes a class of luxury accommodations, the key feature of which is multiple rooms (Source: Wikipedia, the free encyclopedia, see <a href="http://en.wikipedia.org/wiki/Suite_(hotel)">http://en.wikipedia.org/wiki/Suite_(hotel)</a>).
 *  <br /><br />
 *  See also the <a href="/docs/hotels.html">dedicated document on the use of schema.org for marking up hotels and other forms of accommodations</a>.
 * 
 *  @author schema.org
 *  @class Suite
 *  @module org.schema
 *  @extends Accommodation
 */
var Suite = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Accommodation.call(this);
    this.context = "http://schema.org/";
    this.type = "Suite";
};
Suite = stjs.extend(Suite, Accommodation, [], function(constructor, prototype) {
    /**
     *  Schema.org/occupancy
     *  The allowed total occupancy for the accommodation in persons (including infants etc). For individual accommodations, this is not necessarily the legal maximum but defines the permitted usage as per the contractual agreement (e.g. a double room used by a single person).
     *  Typical unit code(s): C62 for person
     * 
     *  @property occupancy
     *  @type QuantitativeValue
     */
    prototype.occupancy = null;
    /**
     *  Schema.org/bed
     *  The type of bed or beds included in the accommodation. For the single case of just one bed of a certain type, you use bed directly with a text.
     *  If you want to indicate the quantity of a certain kind of bed, use an instance of BedDetails. For more detailed information, use the amenityFeature property.
     * 
     *  @property bed
     *  @type BedDetails
     */
    prototype.bed = null;
    /**
     *  Schema.org/numberOfRooms
     *  The number of rooms (excluding bathrooms and closets) of the acccommodation or lodging business.
     *  Typical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.
     * 
     *  @property numberOfRooms
     *  @type Number
     */
    prototype.numberOfRooms = null;
}, {occupancy: "QuantitativeValue", bed: "BedDetails", floorSize: "QuantitativeValue", amenityFeature: "LocationFeatureSpecification", photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/CampingPitch
 *  A camping pitch is an individual place for overnight stay in the outdoors, typically being part of a larger camping site.
 *  <br /><br />
 *  See also the <a href="/docs/hotels.html">dedicated document on the use of schema.org for marking up hotels and other forms of accommodations</a>.
 * 
 *  @author schema.org
 *  @class CampingPitch
 *  @module org.schema
 *  @extends Accommodation
 */
var CampingPitch = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Accommodation.call(this);
    this.context = "http://schema.org/";
    this.type = "CampingPitch";
};
CampingPitch = stjs.extend(CampingPitch, Accommodation, [], null, {floorSize: "QuantitativeValue", amenityFeature: "LocationFeatureSpecification", photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Continent
 *  One of the continents (for example, Europe or Africa).
 * 
 *  @author schema.org
 *  @class Continent
 *  @module org.schema
 *  @extends Landform
 */
var Continent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Landform.call(this);
    this.context = "http://schema.org/";
    this.type = "Continent";
};
Continent = stjs.extend(Continent, Landform, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BodyOfWater
 *  A body of water, such as a sea, ocean, or lake.
 * 
 *  @author schema.org
 *  @class BodyOfWater
 *  @module org.schema
 *  @extends Landform
 */
var BodyOfWater = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Landform.call(this);
    this.context = "http://schema.org/";
    this.type = "BodyOfWater";
};
BodyOfWater = stjs.extend(BodyOfWater, Landform, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Volcano
 *  A volcano, like Fuji san.
 * 
 *  @author schema.org
 *  @class Volcano
 *  @module org.schema
 *  @extends Landform
 */
var Volcano = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Landform.call(this);
    this.context = "http://schema.org/";
    this.type = "Volcano";
};
Volcano = stjs.extend(Volcano, Landform, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Mountain
 *  A mountain, like Mount Whitney or Mount Everest.
 * 
 *  @author schema.org
 *  @class Mountain
 *  @module org.schema
 *  @extends Landform
 */
var Mountain = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Landform.call(this);
    this.context = "http://schema.org/";
    this.type = "Mountain";
};
Mountain = stjs.extend(Mountain, Landform, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ApartmentComplex
 *  Residence type: Apartment complex.
 * 
 *  @author schema.org
 *  @class ApartmentComplex
 *  @module org.schema
 *  @extends Residence
 */
var ApartmentComplex = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Residence.call(this);
    this.context = "http://schema.org/";
    this.type = "ApartmentComplex";
};
ApartmentComplex = stjs.extend(ApartmentComplex, Residence, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/GatedResidenceCommunity
 *  Residence type: Gated community.
 * 
 *  @author schema.org
 *  @class GatedResidenceCommunity
 *  @module org.schema
 *  @extends Residence
 */
var GatedResidenceCommunity = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Residence.call(this);
    this.context = "http://schema.org/";
    this.type = "GatedResidenceCommunity";
};
GatedResidenceCommunity = stjs.extend(GatedResidenceCommunity, Residence, [], null, {photo: "ImageObject", address: "PostalAddress", openingHoursSpecification: "OpeningHoursSpecification", containedInPlace: "Place", reviews: "Review", aggregateRating: "AggregateRating", photos: "Photograph", hasMap: "SchemaMap", additionalProperty: "PropertyValue", events: "SchemaEvent", specialOpeningHoursSpecification: "OpeningHoursSpecification", amenityFeature: "LocationFeatureSpecification", logo: "ImageObject", geo: "GeoCoordinates", review: "Review", event: "SchemaEvent", containsPlace: "Place", containedIn: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/AddAction
 *  The act of editing by adding an object to a collection.
 * 
 *  @author schema.org
 *  @class AddAction
 *  @module org.schema
 *  @extends UpdateAction
 */
var AddAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    UpdateAction.call(this);
    this.context = "http://schema.org/";
    this.type = "AddAction";
};
AddAction = stjs.extend(AddAction, UpdateAction, [], null, {collection: "Thing", targetCollection: "Thing", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ReplaceAction
 *  The act of editing a recipient by replacing an old object with a new object.
 * 
 *  @author schema.org
 *  @class ReplaceAction
 *  @module org.schema
 *  @extends UpdateAction
 */
var ReplaceAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    UpdateAction.call(this);
    this.context = "http://schema.org/";
    this.type = "ReplaceAction";
};
ReplaceAction = stjs.extend(ReplaceAction, UpdateAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/replacee
     *  A sub property of object. The object that is being replaced.
     * 
     *  @property replacee
     *  @type Thing
     */
    prototype.replacee = null;
    /**
     *  Schema.org/replacer
     *  A sub property of object. The object that replaces.
     * 
     *  @property replacer
     *  @type Thing
     */
    prototype.replacer = null;
}, {replacee: "Thing", replacer: "Thing", collection: "Thing", targetCollection: "Thing", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DeleteAction
 *  The act of editing a recipient by removing one of its objects.
 * 
 *  @author schema.org
 *  @class DeleteAction
 *  @module org.schema
 *  @extends UpdateAction
 */
var DeleteAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    UpdateAction.call(this);
    this.context = "http://schema.org/";
    this.type = "DeleteAction";
};
DeleteAction = stjs.extend(DeleteAction, UpdateAction, [], null, {collection: "Thing", targetCollection: "Thing", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DonateAction
 *  The act of providing goods, services, or money without compensation, often for philanthropic reasons.
 * 
 *  @author schema.org
 *  @class DonateAction
 *  @module org.schema
 *  @extends TradeAction
 */
var DonateAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TradeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "DonateAction";
};
DonateAction = stjs.extend(DonateAction, TradeAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/recipient
     *  A sub property of participant. The participant who is at the receiving end of the action.
     * 
     *  @property recipient
     *  @type Organization
     */
    prototype.recipient = null;
}, {recipient: "Organization", priceSpecification: "PriceSpecification", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/OrderAction
 *  An agent orders an object/product/service to be delivered/sent.
 * 
 *  @author schema.org
 *  @class OrderAction
 *  @module org.schema
 *  @extends TradeAction
 */
var OrderAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TradeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "OrderAction";
};
OrderAction = stjs.extend(OrderAction, TradeAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/deliveryMethod
     *  A sub property of instrument. The method of delivery.
     * 
     *  @property deliveryMethod
     *  @type DeliveryMethod
     */
    prototype.deliveryMethod = null;
}, {deliveryMethod: "DeliveryMethod", priceSpecification: "PriceSpecification", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SellAction
 *  The act of taking money from a buyer in exchange for goods or services rendered. An agent sells an object, product, or service to a buyer for a price. Reciprocal of BuyAction.
 * 
 *  @author schema.org
 *  @class SellAction
 *  @module org.schema
 *  @extends TradeAction
 */
var SellAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TradeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "SellAction";
};
SellAction = stjs.extend(SellAction, TradeAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/buyer
     *  A sub property of participant. The participant/person/organization that bought the object.
     * 
     *  @property buyer
     *  @type Person
     */
    prototype.buyer = null;
    /**
     *  Schema.org/warrantyPromise
     *  The warranty promise(s) included in the offer.
     * 
     *  @property warrantyPromise
     *  @type WarrantyPromise
     */
    prototype.warrantyPromise = null;
}, {buyer: "Person", warrantyPromise: "WarrantyPromise", priceSpecification: "PriceSpecification", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BuyAction
 *  The act of giving money to a seller in exchange for goods or services rendered. An agent buys an object, product, or service from a seller for a price. Reciprocal of SellAction.
 * 
 *  @author schema.org
 *  @class BuyAction
 *  @module org.schema
 *  @extends TradeAction
 */
var BuyAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TradeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "BuyAction";
};
BuyAction = stjs.extend(BuyAction, TradeAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/vendor
     *  'vendor' is an earlier term for 'seller'.
     * 
     *  @property vendor
     *  @type Organization
     */
    prototype.vendor = null;
    /**
     *  Schema.org/seller
     *  An entity which offers (sells / leases / lends / loans) the services / goods.  A seller may also be a provider.
     * 
     *  @property seller
     *  @type Person
     */
    prototype.seller = null;
    /**
     *  Schema.org/warrantyPromise
     *  The warranty promise(s) included in the offer.
     * 
     *  @property warrantyPromise
     *  @type WarrantyPromise
     */
    prototype.warrantyPromise = null;
}, {vendor: "Organization", seller: "Person", warrantyPromise: "WarrantyPromise", priceSpecification: "PriceSpecification", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TipAction
 *  The act of giving money voluntarily to a beneficiary in recognition of services rendered.
 * 
 *  @author schema.org
 *  @class TipAction
 *  @module org.schema
 *  @extends TradeAction
 */
var TipAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TradeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "TipAction";
};
TipAction = stjs.extend(TipAction, TradeAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/recipient
     *  A sub property of participant. The participant who is at the receiving end of the action.
     * 
     *  @property recipient
     *  @type Organization
     */
    prototype.recipient = null;
}, {recipient: "Organization", priceSpecification: "PriceSpecification", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PayAction
 *  An agent pays a price to a participant.
 * 
 *  @author schema.org
 *  @class PayAction
 *  @module org.schema
 *  @extends TradeAction
 */
var PayAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TradeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "PayAction";
};
PayAction = stjs.extend(PayAction, TradeAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/recipient
     *  A sub property of participant. The participant who is at the receiving end of the action.
     * 
     *  @property recipient
     *  @type Organization
     */
    prototype.recipient = null;
}, {recipient: "Organization", priceSpecification: "PriceSpecification", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/RentAction
 *  The act of giving money in return for temporary use, but not ownership, of an object such as a vehicle or property. For example, an agent rents a property from a landlord in exchange for a periodic payment.
 * 
 *  @author schema.org
 *  @class RentAction
 *  @module org.schema
 *  @extends TradeAction
 */
var RentAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TradeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "RentAction";
};
RentAction = stjs.extend(RentAction, TradeAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/landlord
     *  A sub property of participant. The owner of the real estate property.
     * 
     *  @property landlord
     *  @type Organization
     */
    prototype.landlord = null;
    /**
     *  Schema.org/realEstateAgent
     *  A sub property of participant. The real estate agent involved in the action.
     * 
     *  @property realEstateAgent
     *  @type RealEstateAgent
     */
    prototype.realEstateAgent = null;
}, {landlord: "Organization", realEstateAgent: "RealEstateAgent", priceSpecification: "PriceSpecification", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/QuoteAction
 *  An agent quotes/estimates/appraises an object/product/service with a price at a location/store.
 * 
 *  @author schema.org
 *  @class QuoteAction
 *  @module org.schema
 *  @extends TradeAction
 */
var QuoteAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TradeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "QuoteAction";
};
QuoteAction = stjs.extend(QuoteAction, TradeAction, [], null, {priceSpecification: "PriceSpecification", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/GiveAction
 *  The act of transferring ownership of an object to a destination. Reciprocal of TakeAction.\n\nRelated actions:\n\n* [[TakeAction]]: Reciprocal of GiveAction.\n* [[SendAction]]: Unlike SendAction, GiveAction implies that ownership is being transferred (e.g. I may send my laptop to you, but that doesn't mean I'm giving it to you).
 * 
 *  @author schema.org
 *  @class GiveAction
 *  @module org.schema
 *  @extends TransferAction
 */
var GiveAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TransferAction.call(this);
    this.context = "http://schema.org/";
    this.type = "GiveAction";
};
GiveAction = stjs.extend(GiveAction, TransferAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/recipient
     *  A sub property of participant. The participant who is at the receiving end of the action.
     * 
     *  @property recipient
     *  @type Organization
     */
    prototype.recipient = null;
}, {recipient: "Organization", toLocation: "Place", fromLocation: "Place", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ReceiveAction
 *  The act of physically/electronically taking delivery of an object thathas been transferred from an origin to a destination. Reciprocal of SendAction.\n\nRelated actions:\n\n* [[SendAction]]: The reciprocal of ReceiveAction.\n* [[TakeAction]]: Unlike TakeAction, ReceiveAction does not imply that the ownership has been transfered (e.g. I can receive a package, but it does not mean the package is now mine).
 * 
 *  @author schema.org
 *  @class ReceiveAction
 *  @module org.schema
 *  @extends TransferAction
 */
var ReceiveAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TransferAction.call(this);
    this.context = "http://schema.org/";
    this.type = "ReceiveAction";
};
ReceiveAction = stjs.extend(ReceiveAction, TransferAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/deliveryMethod
     *  A sub property of instrument. The method of delivery.
     * 
     *  @property deliveryMethod
     *  @type DeliveryMethod
     */
    prototype.deliveryMethod = null;
    /**
     *  Schema.org/sender
     *  A sub property of participant. The participant who is at the sending end of the action.
     * 
     *  @property sender
     *  @type Audience
     */
    prototype.sender = null;
}, {deliveryMethod: "DeliveryMethod", sender: "Audience", toLocation: "Place", fromLocation: "Place", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BorrowAction
 *  The act of obtaining an object under an agreement to return it at a later date. Reciprocal of LendAction.\n\nRelated actions:\n\n* [[LendAction]]: Reciprocal of BorrowAction.
 * 
 *  @author schema.org
 *  @class BorrowAction
 *  @module org.schema
 *  @extends TransferAction
 */
var BorrowAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TransferAction.call(this);
    this.context = "http://schema.org/";
    this.type = "BorrowAction";
};
BorrowAction = stjs.extend(BorrowAction, TransferAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/lender
     *  A sub property of participant. The person that lends the object being borrowed.
     * 
     *  @property lender
     *  @type Organization
     */
    prototype.lender = null;
}, {lender: "Organization", toLocation: "Place", fromLocation: "Place", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DownloadAction
 *  The act of downloading an object.
 * 
 *  @author schema.org
 *  @class DownloadAction
 *  @module org.schema
 *  @extends TransferAction
 */
var DownloadAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TransferAction.call(this);
    this.context = "http://schema.org/";
    this.type = "DownloadAction";
};
DownloadAction = stjs.extend(DownloadAction, TransferAction, [], null, {toLocation: "Place", fromLocation: "Place", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SendAction
 *  The act of physically/electronically dispatching an object for transfer from an origin to a destination.Related actions:\n\n* [[ReceiveAction]]: The reciprocal of SendAction.\n* [[GiveAction]]: Unlike GiveAction, SendAction does not imply the transfer of ownership (e.g. I can send you my laptop, but I'm not necessarily giving it to you).
 * 
 *  @author schema.org
 *  @class SendAction
 *  @module org.schema
 *  @extends TransferAction
 */
var SendAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TransferAction.call(this);
    this.context = "http://schema.org/";
    this.type = "SendAction";
};
SendAction = stjs.extend(SendAction, TransferAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/recipient
     *  A sub property of participant. The participant who is at the receiving end of the action.
     * 
     *  @property recipient
     *  @type Organization
     */
    prototype.recipient = null;
    /**
     *  Schema.org/deliveryMethod
     *  A sub property of instrument. The method of delivery.
     * 
     *  @property deliveryMethod
     *  @type DeliveryMethod
     */
    prototype.deliveryMethod = null;
}, {recipient: "Organization", deliveryMethod: "DeliveryMethod", toLocation: "Place", fromLocation: "Place", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TakeAction
 *  The act of gaining ownership of an object from an origin. Reciprocal of GiveAction.\n\nRelated actions:\n\n* [[GiveAction]]: The reciprocal of TakeAction.\n* [[ReceiveAction]]: Unlike ReceiveAction, TakeAction implies that ownership has been transfered.
 * 
 *  @author schema.org
 *  @class TakeAction
 *  @module org.schema
 *  @extends TransferAction
 */
var TakeAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TransferAction.call(this);
    this.context = "http://schema.org/";
    this.type = "TakeAction";
};
TakeAction = stjs.extend(TakeAction, TransferAction, [], null, {toLocation: "Place", fromLocation: "Place", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/LendAction
 *  The act of providing an object under an agreement that it will be returned at a later date. Reciprocal of BorrowAction.\n\nRelated actions:\n\n* [[BorrowAction]]: Reciprocal of LendAction.
 * 
 *  @author schema.org
 *  @class LendAction
 *  @module org.schema
 *  @extends TransferAction
 */
var LendAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TransferAction.call(this);
    this.context = "http://schema.org/";
    this.type = "LendAction";
};
LendAction = stjs.extend(LendAction, TransferAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/borrower
     *  A sub property of participant. The person that borrows the object being lent.
     * 
     *  @property borrower
     *  @type Person
     */
    prototype.borrower = null;
}, {borrower: "Person", toLocation: "Place", fromLocation: "Place", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ReturnAction
 *  The act of returning to the origin that which was previously received (concrete objects) or taken (ownership).
 * 
 *  @author schema.org
 *  @class ReturnAction
 *  @module org.schema
 *  @extends TransferAction
 */
var ReturnAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    TransferAction.call(this);
    this.context = "http://schema.org/";
    this.type = "ReturnAction";
};
ReturnAction = stjs.extend(ReturnAction, TransferAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/recipient
     *  A sub property of participant. The participant who is at the receiving end of the action.
     * 
     *  @property recipient
     *  @type Organization
     */
    prototype.recipient = null;
}, {recipient: "Organization", toLocation: "Place", fromLocation: "Place", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DepartAction
 *  The act of  departing from a place. An agent departs from an fromLocation for a destination, optionally with participants.
 * 
 *  @author schema.org
 *  @class DepartAction
 *  @module org.schema
 *  @extends MoveAction
 */
var DepartAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    MoveAction.call(this);
    this.context = "http://schema.org/";
    this.type = "DepartAction";
};
DepartAction = stjs.extend(DepartAction, MoveAction, [], null, {toLocation: "Place", fromLocation: "Place", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TravelAction
 *  The act of traveling from an fromLocation to a destination by a specified mode of transport, optionally with participants.
 * 
 *  @author schema.org
 *  @class TravelAction
 *  @module org.schema
 *  @extends MoveAction
 */
var TravelAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    MoveAction.call(this);
    this.context = "http://schema.org/";
    this.type = "TravelAction";
};
TravelAction = stjs.extend(TravelAction, MoveAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/distance
     *  The distance travelled, e.g. exercising or travelling.
     * 
     *  @property distance
     *  @type Distance
     */
    prototype.distance = null;
}, {distance: "Distance", toLocation: "Place", fromLocation: "Place", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ArriveAction
 *  The act of arriving at a place. An agent arrives at a destination from a fromLocation, optionally with participants.
 * 
 *  @author schema.org
 *  @class ArriveAction
 *  @module org.schema
 *  @extends MoveAction
 */
var ArriveAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    MoveAction.call(this);
    this.context = "http://schema.org/";
    this.type = "ArriveAction";
};
ArriveAction = stjs.extend(ArriveAction, MoveAction, [], null, {toLocation: "Place", fromLocation: "Place", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BefriendAction
 *  The act of forming a personal connection with someone (object) mutually/bidirectionally/symmetrically.\n\nRelated actions:\n\n* [[FollowAction]]: Unlike FollowAction, BefriendAction implies that the connection is reciprocal.
 * 
 *  @author schema.org
 *  @class BefriendAction
 *  @module org.schema
 *  @extends InteractAction
 */
var BefriendAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    InteractAction.call(this);
    this.context = "http://schema.org/";
    this.type = "BefriendAction";
};
BefriendAction = stjs.extend(BefriendAction, InteractAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MarryAction
 *  The act of marrying a person.
 * 
 *  @author schema.org
 *  @class MarryAction
 *  @module org.schema
 *  @extends InteractAction
 */
var MarryAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    InteractAction.call(this);
    this.context = "http://schema.org/";
    this.type = "MarryAction";
};
MarryAction = stjs.extend(MarryAction, InteractAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SubscribeAction
 *  The act of forming a personal connection with someone/something (object) unidirectionally/asymmetrically to get updates pushed to.\n\nRelated actions:\n\n* [[FollowAction]]: Unlike FollowAction, SubscribeAction implies that the subscriber acts as a passive agent being constantly/actively pushed for updates.\n* [[RegisterAction]]: Unlike RegisterAction, SubscribeAction implies that the agent is interested in continuing receiving updates from the object.\n* [[JoinAction]]: Unlike JoinAction, SubscribeAction implies that the agent is interested in continuing receiving updates from the object.
 * 
 *  @author schema.org
 *  @class SubscribeAction
 *  @module org.schema
 *  @extends InteractAction
 */
var SubscribeAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    InteractAction.call(this);
    this.context = "http://schema.org/";
    this.type = "SubscribeAction";
};
SubscribeAction = stjs.extend(SubscribeAction, InteractAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/UnRegisterAction
 *  The act of un-registering from a service.\n\nRelated actions:\n\n* [[RegisterAction]]: antonym of UnRegisterAction.\n* [[Leave]]: Unlike LeaveAction, UnRegisterAction implies that you are unregistering from a service you werer previously registered, rather than leaving a team/group of people.
 * 
 *  @author schema.org
 *  @class UnRegisterAction
 *  @module org.schema
 *  @extends InteractAction
 */
var UnRegisterAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    InteractAction.call(this);
    this.context = "http://schema.org/";
    this.type = "UnRegisterAction";
};
UnRegisterAction = stjs.extend(UnRegisterAction, InteractAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/RegisterAction
 *  The act of registering to be a user of a service, product or web page.\n\nRelated actions:\n\n* [[JoinAction]]: Unlike JoinAction, RegisterAction implies you are registering to be a user of a service, *not* a group/team of people.\n* [FollowAction]]: Unlike FollowAction, RegisterAction doesn't imply that the agent is expecting to poll for updates from the object.\n* [[SubscribeAction]]: Unlike SubscribeAction, RegisterAction doesn't imply that the agent is expecting updates from the object.
 * 
 *  @author schema.org
 *  @class RegisterAction
 *  @module org.schema
 *  @extends InteractAction
 */
var RegisterAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    InteractAction.call(this);
    this.context = "http://schema.org/";
    this.type = "RegisterAction";
};
RegisterAction = stjs.extend(RegisterAction, InteractAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/FollowAction
 *  The act of forming a personal connection with someone/something (object) unidirectionally/asymmetrically to get updates polled from.\n\nRelated actions:\n\n* [[BefriendAction]]: Unlike BefriendAction, FollowAction implies that the connection is *not* necessarily reciprocal.\n* [[SubscribeAction]]: Unlike SubscribeAction, FollowAction implies that the follower acts as an active agent constantly/actively polling for updates.\n* [[RegisterAction]]: Unlike RegisterAction, FollowAction implies that the agent is interested in continuing receiving updates from the object.\n* [[JoinAction]]: Unlike JoinAction, FollowAction implies that the agent is interested in getting updates from the object.\n* [[TrackAction]]: Unlike TrackAction, FollowAction refers to the polling of updates of all aspects of animate objects rather than the location of inanimate objects (e.g. you track a package, but you don't follow it).
 * 
 *  @author schema.org
 *  @class FollowAction
 *  @module org.schema
 *  @extends InteractAction
 */
var FollowAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    InteractAction.call(this);
    this.context = "http://schema.org/";
    this.type = "FollowAction";
};
FollowAction = stjs.extend(FollowAction, InteractAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/followee
     *  A sub property of object. The person or organization being followed.
     * 
     *  @property followee
     *  @type Person
     */
    prototype.followee = null;
}, {followee: "Person", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/LeaveAction
 *  An agent leaves an event / group with participants/friends at a location.\n\nRelated actions:\n\n* [[JoinAction]]: The antonym of LeaveAction.\n* [[UnRegisterAction]]: Unlike UnRegisterAction, LeaveAction implies leaving a group/team of people rather than a service.
 * 
 *  @author schema.org
 *  @class LeaveAction
 *  @module org.schema
 *  @extends InteractAction
 */
var LeaveAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    InteractAction.call(this);
    this.context = "http://schema.org/";
    this.type = "LeaveAction";
};
LeaveAction = stjs.extend(LeaveAction, InteractAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/event
     *  Upcoming or past event associated with this place, organization, or action.
     * 
     *  @property event
     *  @type SchemaEvent
     */
    prototype.event = null;
}, {event: "SchemaEvent", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/JoinAction
 *  An agent joins an event/group with participants/friends at a location.\n\nRelated actions:\n\n* [[RegisterAction]]: Unlike RegisterAction, JoinAction refers to joining a group/team of people.\n* [[SubscribeAction]]: Unlike SubscribeAction, JoinAction does not imply that you'll be receiving updates.\n* [[FollowAction]]: Unlike FollowAction, JoinAction does not imply that you'll be polling for updates.
 * 
 *  @author schema.org
 *  @class JoinAction
 *  @module org.schema
 *  @extends InteractAction
 */
var JoinAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    InteractAction.call(this);
    this.context = "http://schema.org/";
    this.type = "JoinAction";
};
JoinAction = stjs.extend(JoinAction, InteractAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/event
     *  Upcoming or past event associated with this place, organization, or action.
     * 
     *  @property event
     *  @type SchemaEvent
     */
    prototype.event = null;
}, {event: "SchemaEvent", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/CommunicateAction
 *  The act of conveying information to another person via a communication medium (instrument) such as speech, email, or telephone conversation.
 * 
 *  @author schema.org
 *  @class CommunicateAction
 *  @module org.schema
 *  @extends InteractAction
 */
var CommunicateAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    InteractAction.call(this);
    this.context = "http://schema.org/";
    this.type = "CommunicateAction";
};
CommunicateAction = stjs.extend(CommunicateAction, InteractAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/about
     *  The subject matter of the content.
     * 
     *  @property about
     *  @type Thing
     */
    prototype.about = null;
    /**
     *  Schema.org/recipient
     *  A sub property of participant. The participant who is at the receiving end of the action.
     * 
     *  @property recipient
     *  @type Organization
     */
    prototype.recipient = null;
    /**
     *  Schema.org/inLanguage
     *  The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].
     * 
     *  @property inLanguage
     *  @type Language
     */
    prototype.inLanguage = null;
    /**
     *  Schema.org/language
     *  A sub property of instrument. The language used on this action.
     * 
     *  @property language
     *  @type Language
     */
    prototype.language = null;
}, {about: "Thing", recipient: "Organization", inLanguage: "Language", language: "Language", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PerformAction
 *  The act of participating in performance arts.
 * 
 *  @author schema.org
 *  @class PerformAction
 *  @module org.schema
 *  @extends PlayAction
 */
var PerformAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    PlayAction.call(this);
    this.context = "http://schema.org/";
    this.type = "PerformAction";
};
PerformAction = stjs.extend(PerformAction, PlayAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/entertainmentBusiness
     *  A sub property of location. The entertainment business where the action occurred.
     * 
     *  @property entertainmentBusiness
     *  @type EntertainmentBusiness
     */
    prototype.entertainmentBusiness = null;
}, {entertainmentBusiness: "EntertainmentBusiness", audience: "Audience", event: "SchemaEvent", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ExerciseAction
 *  The act of participating in exertive activity for the purposes of improving health and fitness.
 * 
 *  @author schema.org
 *  @class ExerciseAction
 *  @module org.schema
 *  @extends PlayAction
 */
var ExerciseAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    PlayAction.call(this);
    this.context = "http://schema.org/";
    this.type = "ExerciseAction";
};
ExerciseAction = stjs.extend(ExerciseAction, PlayAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/course
     *  A sub property of location. The course where this action was taken.
     * 
     *  @property course
     *  @type Place
     */
    prototype.course = null;
    /**
     *  Schema.org/sportsTeam
     *  A sub property of participant. The sports team that participated on this action.
     * 
     *  @property sportsTeam
     *  @type SportsTeam
     */
    prototype.sportsTeam = null;
    /**
     *  Schema.org/sportsEvent
     *  A sub property of location. The sports event where this action occurred.
     * 
     *  @property sportsEvent
     *  @type SportsEvent
     */
    prototype.sportsEvent = null;
    /**
     *  Schema.org/distance
     *  The distance travelled, e.g. exercising or travelling.
     * 
     *  @property distance
     *  @type Distance
     */
    prototype.distance = null;
    /**
     *  Schema.org/opponent
     *  A sub property of participant. The opponent on this action.
     * 
     *  @property opponent
     *  @type Person
     */
    prototype.opponent = null;
    /**
     *  Schema.org/sportsActivityLocation
     *  A sub property of location. The sports activity location where this action occurred.
     * 
     *  @property sportsActivityLocation
     *  @type SportsActivityLocation
     */
    prototype.sportsActivityLocation = null;
    /**
     *  Schema.org/toLocation
     *  A sub property of location. The final location of the object or the agent after the action.
     * 
     *  @property toLocation
     *  @type Place
     */
    prototype.toLocation = null;
    /**
     *  Schema.org/fromLocation
     *  A sub property of location. The original location of the object or the agent before the action.
     * 
     *  @property fromLocation
     *  @type Place
     */
    prototype.fromLocation = null;
    /**
     *  Schema.org/exerciseCourse
     *  A sub property of location. The course where this action was taken.
     * 
     *  @property exerciseCourse
     *  @type Place
     */
    prototype.exerciseCourse = null;
}, {course: "Place", sportsTeam: "SportsTeam", sportsEvent: "SportsEvent", distance: "Distance", opponent: "Person", sportsActivityLocation: "SportsActivityLocation", toLocation: "Place", fromLocation: "Place", exerciseCourse: "Place", audience: "Audience", event: "SchemaEvent", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ApplyAction
 *  The act of registering to an organization/service without the guarantee to receive it.\n\nRelated actions:\n\n* [[RegisterAction]]: Unlike RegisterAction, ApplyAction has no guarantees that the application will be accepted.
 * 
 *  @author schema.org
 *  @class ApplyAction
 *  @module org.schema
 *  @extends OrganizeAction
 */
var ApplyAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    OrganizeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "ApplyAction";
};
ApplyAction = stjs.extend(ApplyAction, OrganizeAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BookmarkAction
 *  An agent bookmarks/flags/labels/tags/marks an object.
 * 
 *  @author schema.org
 *  @class BookmarkAction
 *  @module org.schema
 *  @extends OrganizeAction
 */
var BookmarkAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    OrganizeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "BookmarkAction";
};
BookmarkAction = stjs.extend(BookmarkAction, OrganizeAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/AllocateAction
 *  The act of organizing tasks/objects/events by associating resources to it.
 * 
 *  @author schema.org
 *  @class AllocateAction
 *  @module org.schema
 *  @extends OrganizeAction
 */
var AllocateAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    OrganizeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "AllocateAction";
};
AllocateAction = stjs.extend(AllocateAction, OrganizeAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PlanAction
 *  The act of planning the execution of an event/task/action/reservation/plan to a future date.
 * 
 *  @author schema.org
 *  @class PlanAction
 *  @module org.schema
 *  @extends OrganizeAction
 */
var PlanAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    OrganizeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "PlanAction";
};
PlanAction = stjs.extend(PlanAction, OrganizeAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/scheduledTime
     *  The time the object is scheduled to.
     * 
     *  @property scheduledTime
     *  @type DateTime
     */
    prototype.scheduledTime = null;
}, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ActivateAction
 *  The act of starting or activating a device or application (e.g. starting a timer or turning on a flashlight).
 * 
 *  @author schema.org
 *  @class ActivateAction
 *  @module org.schema
 *  @extends ControlAction
 */
var ActivateAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    ControlAction.call(this);
    this.context = "http://schema.org/";
    this.type = "ActivateAction";
};
ActivateAction = stjs.extend(ActivateAction, ControlAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DeactivateAction
 *  The act of stopping or deactivating a device or application (e.g. stopping a timer or turning off a flashlight).
 * 
 *  @author schema.org
 *  @class DeactivateAction
 *  @module org.schema
 *  @extends ControlAction
 */
var DeactivateAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    ControlAction.call(this);
    this.context = "http://schema.org/";
    this.type = "DeactivateAction";
};
DeactivateAction = stjs.extend(DeactivateAction, ControlAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ResumeAction
 *  The act of resuming a device or application which was formerly paused (e.g. resume music playback or resume a timer).
 * 
 *  @author schema.org
 *  @class ResumeAction
 *  @module org.schema
 *  @extends ControlAction
 */
var ResumeAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    ControlAction.call(this);
    this.context = "http://schema.org/";
    this.type = "ResumeAction";
};
ResumeAction = stjs.extend(ResumeAction, ControlAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SuspendAction
 *  The act of momentarily pausing a device or application (e.g. pause music playback or pause a timer).
 * 
 *  @author schema.org
 *  @class SuspendAction
 *  @module org.schema
 *  @extends ControlAction
 */
var SuspendAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    ControlAction.call(this);
    this.context = "http://schema.org/";
    this.type = "SuspendAction";
};
SuspendAction = stjs.extend(SuspendAction, ControlAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ReviewAction
 *  The act of producing a balanced opinion about the object for an audience. An agent reviews an object with participants resulting in a review.
 * 
 *  @author schema.org
 *  @class ReviewAction
 *  @module org.schema
 *  @extends AssessAction
 */
var ReviewAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    AssessAction.call(this);
    this.context = "http://schema.org/";
    this.type = "ReviewAction";
};
ReviewAction = stjs.extend(ReviewAction, AssessAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/resultReview
     *  A sub property of result. The review that resulted in the performing of the action.
     * 
     *  @property resultReview
     *  @type Review
     */
    prototype.resultReview = null;
}, {resultReview: "Review", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/IgnoreAction
 *  The act of intentionally disregarding the object. An agent ignores an object.
 * 
 *  @author schema.org
 *  @class IgnoreAction
 *  @module org.schema
 *  @extends AssessAction
 */
var IgnoreAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    AssessAction.call(this);
    this.context = "http://schema.org/";
    this.type = "IgnoreAction";
};
IgnoreAction = stjs.extend(IgnoreAction, AssessAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ChooseAction
 *  The act of expressing a preference from a set of options or a large or unbounded set of choices/options.
 * 
 *  @author schema.org
 *  @class ChooseAction
 *  @module org.schema
 *  @extends AssessAction
 */
var ChooseAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    AssessAction.call(this);
    this.context = "http://schema.org/";
    this.type = "ChooseAction";
};
ChooseAction = stjs.extend(ChooseAction, AssessAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/actionOption
     *  A sub property of object. The options subject to this action.
     * 
     *  @property actionOption
     *  @type Text
     */
    prototype.actionOption = null;
    /**
     *  Schema.org/option
     *  A sub property of object. The options subject to this action.
     * 
     *  @property option
     *  @type Text
     */
    prototype.option = null;
}, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ReactAction
 *  The act of responding instinctively and emotionally to an object, expressing a sentiment.
 * 
 *  @author schema.org
 *  @class ReactAction
 *  @module org.schema
 *  @extends AssessAction
 */
var ReactAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    AssessAction.call(this);
    this.context = "http://schema.org/";
    this.type = "ReactAction";
};
ReactAction = stjs.extend(ReactAction, AssessAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/UseAction
 *  The act of applying an object to its intended purpose.
 * 
 *  @author schema.org
 *  @class UseAction
 *  @module org.schema
 *  @extends ConsumeAction
 */
var UseAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    ConsumeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "UseAction";
};
UseAction = stjs.extend(UseAction, ConsumeAction, [], null, {expectsAcceptanceOf: "Offer", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ReadAction
 *  The act of consuming written content.
 * 
 *  @author schema.org
 *  @class ReadAction
 *  @module org.schema
 *  @extends ConsumeAction
 */
var ReadAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    ConsumeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "ReadAction";
};
ReadAction = stjs.extend(ReadAction, ConsumeAction, [], null, {expectsAcceptanceOf: "Offer", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DrinkAction
 *  The act of swallowing liquids.
 * 
 *  @author schema.org
 *  @class DrinkAction
 *  @module org.schema
 *  @extends ConsumeAction
 */
var DrinkAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    ConsumeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "DrinkAction";
};
DrinkAction = stjs.extend(DrinkAction, ConsumeAction, [], null, {expectsAcceptanceOf: "Offer", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ViewAction
 *  The act of consuming static visual content.
 * 
 *  @author schema.org
 *  @class ViewAction
 *  @module org.schema
 *  @extends ConsumeAction
 */
var ViewAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    ConsumeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "ViewAction";
};
ViewAction = stjs.extend(ViewAction, ConsumeAction, [], null, {expectsAcceptanceOf: "Offer", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/WatchAction
 *  The act of consuming dynamic/moving visual content.
 * 
 *  @author schema.org
 *  @class WatchAction
 *  @module org.schema
 *  @extends ConsumeAction
 */
var WatchAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    ConsumeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "WatchAction";
};
WatchAction = stjs.extend(WatchAction, ConsumeAction, [], null, {expectsAcceptanceOf: "Offer", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/InstallAction
 *  The act of installing an application.
 * 
 *  @author schema.org
 *  @class InstallAction
 *  @module org.schema
 *  @extends ConsumeAction
 */
var InstallAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    ConsumeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "InstallAction";
};
InstallAction = stjs.extend(InstallAction, ConsumeAction, [], null, {expectsAcceptanceOf: "Offer", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ListenAction
 *  The act of consuming audio content.
 * 
 *  @author schema.org
 *  @class ListenAction
 *  @module org.schema
 *  @extends ConsumeAction
 */
var ListenAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    ConsumeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "ListenAction";
};
ListenAction = stjs.extend(ListenAction, ConsumeAction, [], null, {expectsAcceptanceOf: "Offer", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/EatAction
 *  The act of swallowing solid objects.
 * 
 *  @author schema.org
 *  @class EatAction
 *  @module org.schema
 *  @extends ConsumeAction
 */
var EatAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    ConsumeAction.call(this);
    this.context = "http://schema.org/";
    this.type = "EatAction";
};
EatAction = stjs.extend(EatAction, ConsumeAction, [], null, {expectsAcceptanceOf: "Offer", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/CookAction
 *  The act of producing/preparing food.
 * 
 *  @author schema.org
 *  @class CookAction
 *  @module org.schema
 *  @extends CreateAction
 */
var CookAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreateAction.call(this);
    this.context = "http://schema.org/";
    this.type = "CookAction";
};
CookAction = stjs.extend(CookAction, CreateAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/recipe
     *  A sub property of instrument. The recipe/instructions used to perform the action.
     * 
     *  @property recipe
     *  @type Recipe
     */
    prototype.recipe = null;
    /**
     *  Schema.org/foodEvent
     *  A sub property of location. The specific food event where the action occurred.
     * 
     *  @property foodEvent
     *  @type FoodEvent
     */
    prototype.foodEvent = null;
    /**
     *  Schema.org/foodEstablishment
     *  A sub property of location. The specific food establishment where the action occurred.
     * 
     *  @property foodEstablishment
     *  @type FoodEstablishment
     */
    prototype.foodEstablishment = null;
}, {recipe: "Recipe", foodEvent: "FoodEvent", foodEstablishment: "FoodEstablishment", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PaintAction
 *  The act of producing a painting, typically with paint and canvas as instruments.
 * 
 *  @author schema.org
 *  @class PaintAction
 *  @module org.schema
 *  @extends CreateAction
 */
var PaintAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreateAction.call(this);
    this.context = "http://schema.org/";
    this.type = "PaintAction";
};
PaintAction = stjs.extend(PaintAction, CreateAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PhotographAction
 *  The act of capturing still images of objects using a camera.
 * 
 *  @author schema.org
 *  @class PhotographAction
 *  @module org.schema
 *  @extends CreateAction
 */
var PhotographAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreateAction.call(this);
    this.context = "http://schema.org/";
    this.type = "PhotographAction";
};
PhotographAction = stjs.extend(PhotographAction, CreateAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/FilmAction
 *  The act of capturing sound and moving images on film, video, or digitally.
 * 
 *  @author schema.org
 *  @class FilmAction
 *  @module org.schema
 *  @extends CreateAction
 */
var FilmAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreateAction.call(this);
    this.context = "http://schema.org/";
    this.type = "FilmAction";
};
FilmAction = stjs.extend(FilmAction, CreateAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/WriteAction
 *  The act of authoring written creative content.
 * 
 *  @author schema.org
 *  @class WriteAction
 *  @module org.schema
 *  @extends CreateAction
 */
var WriteAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreateAction.call(this);
    this.context = "http://schema.org/";
    this.type = "WriteAction";
};
WriteAction = stjs.extend(WriteAction, CreateAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/inLanguage
     *  The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].
     * 
     *  @property inLanguage
     *  @type Language
     */
    prototype.inLanguage = null;
    /**
     *  Schema.org/language
     *  A sub property of instrument. The language used on this action.
     * 
     *  @property language
     *  @type Language
     */
    prototype.language = null;
}, {inLanguage: "Language", language: "Language", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DrawAction
 *  The act of producing a visual/graphical representation of an object, typically with a pen/pencil and paper as instruments.
 * 
 *  @author schema.org
 *  @class DrawAction
 *  @module org.schema
 *  @extends CreateAction
 */
var DrawAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    CreateAction.call(this);
    this.context = "http://schema.org/";
    this.type = "DrawAction";
};
DrawAction = stjs.extend(DrawAction, CreateAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/WinAction
 *  The act of achieving victory in a competitive activity.
 * 
 *  @author schema.org
 *  @class WinAction
 *  @module org.schema
 *  @extends AchieveAction
 */
var WinAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    AchieveAction.call(this);
    this.context = "http://schema.org/";
    this.type = "WinAction";
};
WinAction = stjs.extend(WinAction, AchieveAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/loser
     *  A sub property of participant. The loser of the action.
     * 
     *  @property loser
     *  @type Person
     */
    prototype.loser = null;
}, {loser: "Person", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/LoseAction
 *  The act of being defeated in a competitive activity.
 * 
 *  @author schema.org
 *  @class LoseAction
 *  @module org.schema
 *  @extends AchieveAction
 */
var LoseAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    AchieveAction.call(this);
    this.context = "http://schema.org/";
    this.type = "LoseAction";
};
LoseAction = stjs.extend(LoseAction, AchieveAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/winner
     *  A sub property of participant. The winner of the action.
     * 
     *  @property winner
     *  @type Person
     */
    prototype.winner = null;
}, {winner: "Person", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TieAction
 *  The act of reaching a draw in a competitive activity.
 * 
 *  @author schema.org
 *  @class TieAction
 *  @module org.schema
 *  @extends AchieveAction
 */
var TieAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    AchieveAction.call(this);
    this.context = "http://schema.org/";
    this.type = "TieAction";
};
TieAction = stjs.extend(TieAction, AchieveAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/CheckAction
 *  An agent inspects, determines, investigates, inquires, or examines an object's accuracy, quality, condition, or state.
 * 
 *  @author schema.org
 *  @class CheckAction
 *  @module org.schema
 *  @extends FindAction
 */
var CheckAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    FindAction.call(this);
    this.context = "http://schema.org/";
    this.type = "CheckAction";
};
CheckAction = stjs.extend(CheckAction, FindAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TrackAction
 *  An agent tracks an object for updates.\n\nRelated actions:\n\n* [[FollowAction]]: Unlike FollowAction, TrackAction refers to the interest on the location of innanimates objects.\n* [[SubscribeAction]]: Unlike SubscribeAction, TrackAction refers to  the interest on the location of innanimate objects.
 * 
 *  @author schema.org
 *  @class TrackAction
 *  @module org.schema
 *  @extends FindAction
 */
var TrackAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    FindAction.call(this);
    this.context = "http://schema.org/";
    this.type = "TrackAction";
};
TrackAction = stjs.extend(TrackAction, FindAction, [], function(constructor, prototype) {
    /**
     *  Schema.org/deliveryMethod
     *  A sub property of instrument. The method of delivery.
     * 
     *  @property deliveryMethod
     *  @type DeliveryMethod
     */
    prototype.deliveryMethod = null;
}, {deliveryMethod: "DeliveryMethod", result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DiscoverAction
 *  The act of discovering/finding an object.
 * 
 *  @author schema.org
 *  @class DiscoverAction
 *  @module org.schema
 *  @extends FindAction
 */
var DiscoverAction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    FindAction.call(this);
    this.context = "http://schema.org/";
    this.type = "DiscoverAction";
};
DiscoverAction = stjs.extend(DiscoverAction, FindAction, [], null, {result: "Thing", actionStatus: "ActionStatusType", target: "EntryPoint", agent: "Person", participant: "Person", instrument: "Thing", object: "Thing", error: "Thing", location: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SportsTeam
 *  Organization: Sports team.
 * 
 *  @author schema.org
 *  @class SportsTeam
 *  @module org.schema
 *  @extends SportsOrganization
 */
var SportsTeam = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SportsOrganization.call(this);
    this.context = "http://schema.org/";
    this.type = "SportsTeam";
};
SportsTeam = stjs.extend(SportsTeam, SportsOrganization, [], function(constructor, prototype) {
    /**
     *  Schema.org/athlete
     *  A person that acts as performing member of a sports team; a player as opposed to a coach.
     * 
     *  @property athlete
     *  @type Person
     */
    prototype.athlete = null;
    /**
     *  Schema.org/coach
     *  A person that acts in a coaching role for a sports team.
     * 
     *  @property coach
     *  @type Person
     */
    prototype.coach = null;
}, {athlete: "Person", coach: "Person", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DanceGroup
 *  A dance group&#x2014;for example, the Alvin Ailey Dance Theater or Riverdance.
 * 
 *  @author schema.org
 *  @class DanceGroup
 *  @module org.schema
 *  @extends PerformingGroup
 */
var DanceGroup = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    PerformingGroup.call(this);
    this.context = "http://schema.org/";
    this.type = "DanceGroup";
};
DanceGroup = stjs.extend(DanceGroup, PerformingGroup, [], null, {serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TheaterGroup
 *  A theater group or company, for example, the Royal Shakespeare Company or Druid Theatre.
 * 
 *  @author schema.org
 *  @class TheaterGroup
 *  @module org.schema
 *  @extends PerformingGroup
 */
var TheaterGroup = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    PerformingGroup.call(this);
    this.context = "http://schema.org/";
    this.type = "TheaterGroup";
};
TheaterGroup = stjs.extend(TheaterGroup, PerformingGroup, [], null, {serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MusicGroup
 *  A musical group, such as a band, an orchestra, or a choir. Can also be a solo musician.
 * 
 *  @author schema.org
 *  @class MusicGroup
 *  @module org.schema
 *  @extends PerformingGroup
 */
var MusicGroup = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    PerformingGroup.call(this);
    this.context = "http://schema.org/";
    this.type = "MusicGroup";
};
MusicGroup = stjs.extend(MusicGroup, PerformingGroup, [], function(constructor, prototype) {
    /**
     *  Schema.org/albums
     *  A collection of music albums.
     * 
     *  @property albums
     *  @type MusicAlbum
     */
    prototype.albums = null;
    /**
     *  Schema.org/track
     *  A music recording (track)&#x2014;usually a single song. If an ItemList is given, the list should contain items of type MusicRecording.
     * 
     *  @property track
     *  @type MusicRecording
     */
    prototype.track = null;
    /**
     *  Schema.org/genre
     *  Genre of the creative work, broadcast channel or group.
     * 
     *  @property genre
     *  @type URL
     */
    prototype.genre = null;
    /**
     *  Schema.org/tracks
     *  A music recording (track)&#x2014;usually a single song.
     * 
     *  @property tracks
     *  @type MusicRecording
     */
    prototype.tracks = null;
    /**
     *  Schema.org/musicGroupMember
     *  A member of a music group&#x2014;for example, John, Paul, George, or Ringo.
     * 
     *  @property musicGroupMember
     *  @type Person
     */
    prototype.musicGroupMember = null;
    /**
     *  Schema.org/album
     *  A music album.
     * 
     *  @property album
     *  @type MusicAlbum
     */
    prototype.album = null;
}, {albums: "MusicAlbum", track: "MusicRecording", tracks: "MusicRecording", musicGroupMember: "Person", album: "MusicAlbum", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Preschool
 *  A preschool.
 * 
 *  @author schema.org
 *  @class Preschool
 *  @module org.schema
 *  @extends EducationalOrganization
 */
var Preschool = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    EducationalOrganization.call(this);
    this.context = "http://schema.org/";
    this.type = "Preschool";
};
Preschool = stjs.extend(Preschool, EducationalOrganization, [], null, {alumni: "Person", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MiddleSchool
 *  A middle school (typically for children aged around 11-14, although this varies somewhat).
 * 
 *  @author schema.org
 *  @class MiddleSchool
 *  @module org.schema
 *  @extends EducationalOrganization
 */
var MiddleSchool = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    EducationalOrganization.call(this);
    this.context = "http://schema.org/";
    this.type = "MiddleSchool";
};
MiddleSchool = stjs.extend(MiddleSchool, EducationalOrganization, [], null, {alumni: "Person", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ElementarySchool
 *  An elementary school.
 * 
 *  @author schema.org
 *  @class ElementarySchool
 *  @module org.schema
 *  @extends EducationalOrganization
 */
var ElementarySchool = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    EducationalOrganization.call(this);
    this.context = "http://schema.org/";
    this.type = "ElementarySchool";
};
ElementarySchool = stjs.extend(ElementarySchool, EducationalOrganization, [], null, {alumni: "Person", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/HighSchool
 *  A high school.
 * 
 *  @author schema.org
 *  @class HighSchool
 *  @module org.schema
 *  @extends EducationalOrganization
 */
var HighSchool = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    EducationalOrganization.call(this);
    this.context = "http://schema.org/";
    this.type = "HighSchool";
};
HighSchool = stjs.extend(HighSchool, EducationalOrganization, [], null, {alumni: "Person", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/CollegeOrUniversity
 *  A college, university, or other third-level educational institution.
 * 
 *  @author schema.org
 *  @class CollegeOrUniversity
 *  @module org.schema
 *  @extends EducationalOrganization
 */
var CollegeOrUniversity = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    EducationalOrganization.call(this);
    this.context = "http://schema.org/";
    this.type = "CollegeOrUniversity";
};
CollegeOrUniversity = stjs.extend(CollegeOrUniversity, EducationalOrganization, [], null, {alumni: "Person", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/School
 *  A school.
 * 
 *  @author schema.org
 *  @class School
 *  @module org.schema
 *  @extends EducationalOrganization
 */
var School = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    EducationalOrganization.call(this);
    this.context = "http://schema.org/";
    this.type = "School";
};
School = stjs.extend(School, EducationalOrganization, [], null, {alumni: "Person", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Dentist
 *  A dentist.
 * 
 *  @author schema.org
 *  @class Dentist
 *  @module org.schema
 *  @extends MedicalOrganization
 */
var Dentist = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    MedicalOrganization.call(this);
    this.context = "http://schema.org/";
    this.type = "Dentist";
};
Dentist = stjs.extend(Dentist, MedicalOrganization, [], null, {serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Pharmacy
 *  A pharmacy or drugstore.
 * 
 *  @author schema.org
 *  @class Pharmacy
 *  @module org.schema
 *  @extends MedicalOrganization
 */
var Pharmacy = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    MedicalOrganization.call(this);
    this.context = "http://schema.org/";
    this.type = "Pharmacy";
};
Pharmacy = stjs.extend(Pharmacy, MedicalOrganization, [], null, {serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Physician
 *  A doctor's office.
 * 
 *  @author schema.org
 *  @class Physician
 *  @module org.schema
 *  @extends MedicalOrganization
 */
var Physician = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    MedicalOrganization.call(this);
    this.context = "http://schema.org/";
    this.type = "Physician";
};
Physician = stjs.extend(Physician, MedicalOrganization, [], null, {serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/GovernmentOffice
 *  A government office&#x2014;for example, an IRS or DMV office.
 * 
 *  @author schema.org
 *  @class GovernmentOffice
 *  @module org.schema
 *  @extends LocalBusiness
 */
var GovernmentOffice = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "GovernmentOffice";
};
GovernmentOffice = stjs.extend(GovernmentOffice, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/RealEstateAgent
 *  A real-estate agent.
 * 
 *  @author schema.org
 *  @class RealEstateAgent
 *  @module org.schema
 *  @extends LocalBusiness
 */
var RealEstateAgent = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "RealEstateAgent";
};
RealEstateAgent = stjs.extend(RealEstateAgent, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SelfStorage
 *  A self-storage facility.
 * 
 *  @author schema.org
 *  @class SelfStorage
 *  @module org.schema
 *  @extends LocalBusiness
 */
var SelfStorage = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "SelfStorage";
};
SelfStorage = stjs.extend(SelfStorage, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/FoodEstablishment
 *  A food-related business.
 * 
 *  @author schema.org
 *  @class FoodEstablishment
 *  @module org.schema
 *  @extends LocalBusiness
 */
var FoodEstablishment = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "FoodEstablishment";
};
FoodEstablishment = stjs.extend(FoodEstablishment, LocalBusiness, [], function(constructor, prototype) {
    /**
     *  Schema.org/servesCuisine
     *  The cuisine of the restaurant.
     * 
     *  @property servesCuisine
     *  @type Text
     */
    prototype.servesCuisine = null;
    /**
     *  Schema.org/hasMenu
     *  Either the actual menu as a structured representation, as text, or a URL of the menu.
     * 
     *  @property hasMenu
     *  @type URL
     */
    prototype.hasMenu = null;
    /**
     *  Schema.org/menu
     *  Either the actual menu as a structured representation, as text, or a URL of the menu.
     * 
     *  @property menu
     *  @type Menu
     */
    prototype.menu = null;
    /**
     *  Schema.org/starRating
     *  An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).
     * 
     *  @property starRating
     *  @type Rating
     */
    prototype.starRating = null;
    /**
     *  Schema.org/acceptsReservations
     *  Indicates whether a FoodEstablishment accepts reservations. Values can be Boolean, an URL at which reservations can be made or (for backwards compatibility) the strings ```Yes``` or ```No```.
     * 
     *  @property acceptsReservations
     *  @type URL
     */
    prototype.acceptsReservations = null;
}, {menu: "Menu", starRating: "Rating", branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TouristInformationCenter
 *  A tourist information center.
 * 
 *  @author schema.org
 *  @class TouristInformationCenter
 *  @module org.schema
 *  @extends LocalBusiness
 */
var TouristInformationCenter = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "TouristInformationCenter";
};
TouristInformationCenter = stjs.extend(TouristInformationCenter, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/EmploymentAgency
 *  An employment agency.
 * 
 *  @author schema.org
 *  @class EmploymentAgency
 *  @module org.schema
 *  @extends LocalBusiness
 */
var EmploymentAgency = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "EmploymentAgency";
};
EmploymentAgency = stjs.extend(EmploymentAgency, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ChildCare
 *  A Childcare center.
 * 
 *  @author schema.org
 *  @class ChildCare
 *  @module org.schema
 *  @extends LocalBusiness
 */
var ChildCare = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "ChildCare";
};
ChildCare = stjs.extend(ChildCare, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SportsActivityLocation
 *  A sports location, such as a playing field.
 * 
 *  @author schema.org
 *  @class SportsActivityLocation
 *  @module org.schema
 *  @extends LocalBusiness
 */
var SportsActivityLocation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "SportsActivityLocation";
};
SportsActivityLocation = stjs.extend(SportsActivityLocation, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/LegalService
 *  A LegalService is a business that provides legally-oriented services, advice and representation, e.g. law firms.\n\nAs a [[LocalBusiness]] it can be described as a [[provider]] of one or more [[Service]]\(s).
 * 
 *  @author schema.org
 *  @class LegalService
 *  @module org.schema
 *  @extends LocalBusiness
 */
var LegalService = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "LegalService";
};
LegalService = stjs.extend(LegalService, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/HealthAndBeautyBusiness
 *  Health and beauty.
 * 
 *  @author schema.org
 *  @class HealthAndBeautyBusiness
 *  @module org.schema
 *  @extends LocalBusiness
 */
var HealthAndBeautyBusiness = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "HealthAndBeautyBusiness";
};
HealthAndBeautyBusiness = stjs.extend(HealthAndBeautyBusiness, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TelevisionStation
 *  A television station.
 * 
 *  @author schema.org
 *  @class TelevisionStation
 *  @module org.schema
 *  @extends LocalBusiness
 */
var TelevisionStation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "TelevisionStation";
};
TelevisionStation = stjs.extend(TelevisionStation, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/LodgingBusiness
 *  A lodging business, such as a motel, hotel, or inn.
 * 
 *  @author schema.org
 *  @class LodgingBusiness
 *  @module org.schema
 *  @extends LocalBusiness
 */
var LodgingBusiness = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "LodgingBusiness";
};
LodgingBusiness = stjs.extend(LodgingBusiness, LocalBusiness, [], function(constructor, prototype) {
    /**
     *  Schema.org/audience
     *  An intended audience, i.e. a group for whom something was created.
     * 
     *  @property audience
     *  @type Audience
     */
    prototype.audience = null;
    /**
     *  Schema.org/checkinTime
     *  The earliest someone may check into a lodging establishment.
     * 
     *  @property checkinTime
     *  @type DateTime
     */
    prototype.checkinTime = null;
    /**
     *  Schema.org/petsAllowed
     *  Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.
     * 
     *  @property petsAllowed
     *  @type Boolean
     */
    prototype.petsAllowed = null;
    /**
     *  Schema.org/availableLanguage
     *  A language someone may use with the item. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]]
     * 
     *  @property availableLanguage
     *  @type Language
     */
    prototype.availableLanguage = null;
    /**
     *  Schema.org/amenityFeature
     *  An amenity feature (e.g. a characteristic or service) of the Accommodation. This generic property does not make a statement about whether the feature is included in an offer for the main accommodation or available at extra costs.
     * 
     *  @property amenityFeature
     *  @type LocationFeatureSpecification
     */
    prototype.amenityFeature = null;
    /**
     *  Schema.org/starRating
     *  An official rating for a lodging business or food establishment, e.g. from national associations or standards bodies. Use the author property to indicate the rating organization, e.g. as an Organization with name such as (e.g. HOTREC, DEHOGA, WHR, or Hotelstars).
     * 
     *  @property starRating
     *  @type Rating
     */
    prototype.starRating = null;
    /**
     *  Schema.org/checkoutTime
     *  The latest someone may check out of a lodging establishment.
     * 
     *  @property checkoutTime
     *  @type DateTime
     */
    prototype.checkoutTime = null;
}, {audience: "Audience", availableLanguage: "Language", amenityFeature: "LocationFeatureSpecification", starRating: "Rating", branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/FinancialService
 *  Financial services business.
 * 
 *  @author schema.org
 *  @class FinancialService
 *  @module org.schema
 *  @extends LocalBusiness
 */
var FinancialService = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "FinancialService";
};
FinancialService = stjs.extend(FinancialService, LocalBusiness, [], function(constructor, prototype) {
    /**
     *  Schema.org/feesAndCommissionsSpecification
     *  Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.
     * 
     *  @property feesAndCommissionsSpecification
     *  @type Text
     */
    prototype.feesAndCommissionsSpecification = null;
}, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Store
 *  A retail good store.
 * 
 *  @author schema.org
 *  @class Store
 *  @module org.schema
 *  @extends LocalBusiness
 */
var Store = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "Store";
};
Store = stjs.extend(Store, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ShoppingCenter
 *  A shopping center or mall.
 * 
 *  @author schema.org
 *  @class ShoppingCenter
 *  @module org.schema
 *  @extends LocalBusiness
 */
var ShoppingCenter = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "ShoppingCenter";
};
ShoppingCenter = stjs.extend(ShoppingCenter, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/AutomotiveBusiness
 *  Car repair, sales, or parts.
 * 
 *  @author schema.org
 *  @class AutomotiveBusiness
 *  @module org.schema
 *  @extends LocalBusiness
 */
var AutomotiveBusiness = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "AutomotiveBusiness";
};
AutomotiveBusiness = stjs.extend(AutomotiveBusiness, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/EntertainmentBusiness
 *  A business providing entertainment.
 * 
 *  @author schema.org
 *  @class EntertainmentBusiness
 *  @module org.schema
 *  @extends LocalBusiness
 */
var EntertainmentBusiness = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "EntertainmentBusiness";
};
EntertainmentBusiness = stjs.extend(EntertainmentBusiness, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Library
 *  A library.
 * 
 *  @author schema.org
 *  @class Library
 *  @module org.schema
 *  @extends LocalBusiness
 */
var Library = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "Library";
};
Library = stjs.extend(Library, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/RecyclingCenter
 *  A recycling center.
 * 
 *  @author schema.org
 *  @class RecyclingCenter
 *  @module org.schema
 *  @extends LocalBusiness
 */
var RecyclingCenter = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "RecyclingCenter";
};
RecyclingCenter = stjs.extend(RecyclingCenter, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/InternetCafe
 *  An internet cafe.
 * 
 *  @author schema.org
 *  @class InternetCafe
 *  @module org.schema
 *  @extends LocalBusiness
 */
var InternetCafe = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "InternetCafe";
};
InternetCafe = stjs.extend(InternetCafe, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/AnimalShelter
 *  Animal shelter.
 * 
 *  @author schema.org
 *  @class AnimalShelter
 *  @module org.schema
 *  @extends LocalBusiness
 */
var AnimalShelter = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "AnimalShelter";
};
AnimalShelter = stjs.extend(AnimalShelter, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/EmergencyService
 *  An emergency service, such as a fire station or ER.
 * 
 *  @author schema.org
 *  @class EmergencyService
 *  @module org.schema
 *  @extends LocalBusiness
 */
var EmergencyService = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "EmergencyService";
};
EmergencyService = stjs.extend(EmergencyService, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/HomeAndConstructionBusiness
 *  A construction business.\n\nA HomeAndConstructionBusiness is a [[LocalBusiness]] that provides services around homes and buildings.\n\nAs a [[LocalBusiness]] it can be described as a [[provider]] of one or more [[Service]]\(s).
 * 
 *  @author schema.org
 *  @class HomeAndConstructionBusiness
 *  @module org.schema
 *  @extends LocalBusiness
 */
var HomeAndConstructionBusiness = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "HomeAndConstructionBusiness";
};
HomeAndConstructionBusiness = stjs.extend(HomeAndConstructionBusiness, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TravelAgency
 *  A travel agency.
 * 
 *  @author schema.org
 *  @class TravelAgency
 *  @module org.schema
 *  @extends LocalBusiness
 */
var TravelAgency = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "TravelAgency";
};
TravelAgency = stjs.extend(TravelAgency, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/RadioStation
 *  A radio station.
 * 
 *  @author schema.org
 *  @class RadioStation
 *  @module org.schema
 *  @extends LocalBusiness
 */
var RadioStation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "RadioStation";
};
RadioStation = stjs.extend(RadioStation, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DryCleaningOrLaundry
 *  A dry-cleaning business.
 * 
 *  @author schema.org
 *  @class DryCleaningOrLaundry
 *  @module org.schema
 *  @extends LocalBusiness
 */
var DryCleaningOrLaundry = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "DryCleaningOrLaundry";
};
DryCleaningOrLaundry = stjs.extend(DryCleaningOrLaundry, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ProfessionalService
 *  Original definition: "provider of professional services."\n\nThe general [[ProfessionalService]] type for local businesses was deprecated due to confusion with [[Service]]. For reference, the types that it included were: [[Dentist]],
 *  [[AccountingService]], [[Attorney]], [[Notary]], as well as types for several kinds of [[HomeAndConstructionBusiness]]: [[Electrician]], [[GeneralContractor]],
 *  [[HousePainter]], [[Locksmith]], [[Plumber]], [[RoofingContractor]]. [[LegalService]] was introduced as a more inclusive supertype of [[Attorney]].
 * 
 *  @author schema.org
 *  @class ProfessionalService
 *  @module org.schema
 *  @extends LocalBusiness
 */
var ProfessionalService = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    LocalBusiness.call(this);
    this.context = "http://schema.org/";
    this.type = "ProfessionalService";
};
ProfessionalService = stjs.extend(ProfessionalService, LocalBusiness, [], null, {branchOf: "Organization", serviceArea: "GeoShape", address: "PostalAddress", funder: "Person", memberOf: "Organization", subOrganization: "Organization", hasOfferCatalog: "OfferCatalog", reviews: "Review", members: "Organization", aggregateRating: "AggregateRating", makesOffer: "Offer", contactPoints: "ContactPoint", seeks: "Demand", member: "Organization", founders: "Person", alumni: "Person", events: "SchemaEvent", logo: "ImageObject", employees: "Person", department: "Organization", contactPoint: "ContactPoint", parentOrganization: "Organization", employee: "Person", numberOfEmployees: "QuantitativeValue", hasPOS: "Place", review: "Review", foundingLocation: "Place", owns: "OwnershipInfo", event: "SchemaEvent", founder: "Person", sponsor: "Organization", location: "PostalAddress", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Mass
 *  Properties that take Mass as values are of the form '&lt;Number&gt; &lt;Mass unit of measure&gt;'. E.g., '7 kg'.
 * 
 *  @author schema.org
 *  @class Mass
 *  @module org.schema
 *  @extends Quantity
 */
var Mass = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Quantity.call(this);
    this.context = "http://schema.org/";
    this.type = "Mass";
};
Mass = stjs.extend(Mass, Quantity, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Energy
 *  Properties that take Energy as values are of the form '&lt;Number&gt; &lt;Energy unit of measure&gt;'.
 * 
 *  @author schema.org
 *  @class Energy
 *  @module org.schema
 *  @extends Quantity
 */
var Energy = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Quantity.call(this);
    this.context = "http://schema.org/";
    this.type = "Energy";
};
Energy = stjs.extend(Energy, Quantity, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Duration
 *  Quantity: Duration (use [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601)).
 * 
 *  @author schema.org
 *  @class Duration
 *  @module org.schema
 *  @extends Quantity
 */
var Duration = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Quantity.call(this);
    this.context = "http://schema.org/";
    this.type = "Duration";
};
Duration = stjs.extend(Duration, Quantity, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Distance
 *  Properties that take Distances as values are of the form '&lt;Number&gt; &lt;Length unit of measure&gt;'. E.g., '7 ft'.
 * 
 *  @author schema.org
 *  @class Distance
 *  @module org.schema
 *  @extends Quantity
 */
var Distance = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Quantity.call(this);
    this.context = "http://schema.org/";
    this.type = "Distance";
};
Distance = stjs.extend(Distance, Quantity, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/GeoCoordinates
 *  The geographic coordinates of a place or event.
 * 
 *  @author schema.org
 *  @class GeoCoordinates
 *  @module org.schema
 *  @extends StructuredValue
 */
var GeoCoordinates = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "GeoCoordinates";
};
GeoCoordinates = stjs.extend(GeoCoordinates, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/address
     *  Physical address of the item.
     * 
     *  @property address
     *  @type PostalAddress
     */
    prototype.address = null;
    /**
     *  Schema.org/latitude
     *  The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).
     * 
     *  @property latitude
     *  @type Text
     */
    prototype.latitude = null;
    /**
     *  Schema.org/longitude
     *  The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).
     * 
     *  @property longitude
     *  @type Text
     */
    prototype.longitude = null;
    /**
     *  Schema.org/addressCountry
     *  The country. For example, USA. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1).
     * 
     *  @property addressCountry
     *  @type Text
     */
    prototype.addressCountry = null;
    /**
     *  Schema.org/postalCode
     *  The postal code. For example, 94043.
     * 
     *  @property postalCode
     *  @type Text
     */
    prototype.postalCode = null;
    /**
     *  Schema.org/elevation
     *  The elevation of a location ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).
     * 
     *  @property elevation
     *  @type Text
     */
    prototype.elevation = null;
}, {address: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PropertyValue
 *  A property-value pair, e.g. representing a feature of a product or place. Use the 'name' property for the name of the property. If there is an additional human-readable version of the value, put that into the 'description' property.\n\n Always use specific schema.org properties when a) they exist and b) you can populate them. Using PropertyValue as a substitute will typically not trigger the same effect as using the original, specific property.
 * 
 *  @author schema.org
 *  @class PropertyValue
 *  @module org.schema
 *  @extends StructuredValue
 */
var PropertyValue = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "PropertyValue";
};
PropertyValue = stjs.extend(PropertyValue, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/unitCode
     *  The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon.
     * 
     *  @property unitCode
     *  @type Text
     */
    prototype.unitCode = null;
    /**
     *  Schema.org/minValue
     *  The lower value of some characteristic or property.
     * 
     *  @property minValue
     *  @type Number
     */
    prototype.minValue = null;
    /**
     *  Schema.org/propertyID
     *  A commonly used identifier for the characteristic represented by the property, e.g. a manufacturer or a standard code for a property. propertyID can be
     *  (1) a prefixed string, mainly meant to be used with standards for product properties; (2) a site-specific, non-prefixed string (e.g. the primary key of the property or the vendor-specific id of the property), or (3)
     *  a URL indicating the type of the property, either pointing to an external vocabulary, or a Web resource that describes the property (e.g. a glossary entry).
     *  Standards bodies should promote a standard prefix for the identifiers of properties from their standards.
     * 
     *  @property propertyID
     *  @type Text
     */
    prototype.propertyID = null;
    /**
     *  Schema.org/value
     *  The value of the quantitative value or property value node.\n\n* For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is 'Number'.\n* For [[PropertyValue]], it can be 'Text;', 'Number', 'Boolean', or 'StructuredValue'.
     * 
     *  @property value
     *  @type StructuredValue
     */
    prototype.value = null;
    /**
     *  Schema.org/valueReference
     *  A pointer to a secondary value that provides additional information on the original value, e.g. a reference temperature.
     * 
     *  @property valueReference
     *  @type StructuredValue
     */
    prototype.valueReference = null;
    /**
     *  Schema.org/maxValue
     *  The upper value of some characteristic or property.
     * 
     *  @property maxValue
     *  @type Number
     */
    prototype.maxValue = null;
    /**
     *  Schema.org/unitText
     *  A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for
     *  <a href='unitCode'>unitCode</a>.
     * 
     *  @property unitText
     *  @type Text
     */
    prototype.unitText = null;
}, {value: "StructuredValue", valueReference: "StructuredValue", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/NutritionInformation
 *  Nutritional information about the recipe.
 * 
 *  @author schema.org
 *  @class NutritionInformation
 *  @module org.schema
 *  @extends StructuredValue
 */
var NutritionInformation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "NutritionInformation";
};
NutritionInformation = stjs.extend(NutritionInformation, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/saturatedFatContent
     *  The number of grams of saturated fat.
     * 
     *  @property saturatedFatContent
     *  @type Mass
     */
    prototype.saturatedFatContent = null;
    /**
     *  Schema.org/fatContent
     *  The number of grams of fat.
     * 
     *  @property fatContent
     *  @type Mass
     */
    prototype.fatContent = null;
    /**
     *  Schema.org/unsaturatedFatContent
     *  The number of grams of unsaturated fat.
     * 
     *  @property unsaturatedFatContent
     *  @type Mass
     */
    prototype.unsaturatedFatContent = null;
    /**
     *  Schema.org/sugarContent
     *  The number of grams of sugar.
     * 
     *  @property sugarContent
     *  @type Mass
     */
    prototype.sugarContent = null;
    /**
     *  Schema.org/cholesterolContent
     *  The number of milligrams of cholesterol.
     * 
     *  @property cholesterolContent
     *  @type Mass
     */
    prototype.cholesterolContent = null;
    /**
     *  Schema.org/carbohydrateContent
     *  The number of grams of carbohydrates.
     * 
     *  @property carbohydrateContent
     *  @type Mass
     */
    prototype.carbohydrateContent = null;
    /**
     *  Schema.org/proteinContent
     *  The number of grams of protein.
     * 
     *  @property proteinContent
     *  @type Mass
     */
    prototype.proteinContent = null;
    /**
     *  Schema.org/sodiumContent
     *  The number of milligrams of sodium.
     * 
     *  @property sodiumContent
     *  @type Mass
     */
    prototype.sodiumContent = null;
    /**
     *  Schema.org/transFatContent
     *  The number of grams of trans fat.
     * 
     *  @property transFatContent
     *  @type Mass
     */
    prototype.transFatContent = null;
    /**
     *  Schema.org/fiberContent
     *  The number of grams of fiber.
     * 
     *  @property fiberContent
     *  @type Mass
     */
    prototype.fiberContent = null;
    /**
     *  Schema.org/calories
     *  The number of calories.
     * 
     *  @property calories
     *  @type Energy
     */
    prototype.calories = null;
    /**
     *  Schema.org/servingSize
     *  The serving size, in terms of the number of volume or mass.
     * 
     *  @property servingSize
     *  @type Text
     */
    prototype.servingSize = null;
}, {saturatedFatContent: "Mass", fatContent: "Mass", unsaturatedFatContent: "Mass", sugarContent: "Mass", cholesterolContent: "Mass", carbohydrateContent: "Mass", proteinContent: "Mass", sodiumContent: "Mass", transFatContent: "Mass", fiberContent: "Mass", calories: "Energy", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/QuantitativeValue
 *  A point value or interval for product characteristics and other purposes.
 * 
 *  @author schema.org
 *  @class QuantitativeValue
 *  @module org.schema
 *  @extends StructuredValue
 */
var QuantitativeValue = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "QuantitativeValue";
};
QuantitativeValue = stjs.extend(QuantitativeValue, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/unitCode
     *  The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon.
     * 
     *  @property unitCode
     *  @type Text
     */
    prototype.unitCode = null;
    /**
     *  Schema.org/minValue
     *  The lower value of some characteristic or property.
     * 
     *  @property minValue
     *  @type Number
     */
    prototype.minValue = null;
    /**
     *  Schema.org/value
     *  The value of the quantitative value or property value node.\n\n* For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is 'Number'.\n* For [[PropertyValue]], it can be 'Text;', 'Number', 'Boolean', or 'StructuredValue'.
     * 
     *  @property value
     *  @type StructuredValue
     */
    prototype.value = null;
    /**
     *  Schema.org/additionalProperty
     *  A property-value pair representing an additional characteristics of the entitity, e.g. a product feature or another characteristic for which there is no matching property in schema.org.\n\nNote: Publishers should be aware that applications designed to use specific schema.org properties (e.g. schema:width, schema:color, schema:gtin13, ...) will typically expect such data to be provided using those properties, rather than using the generic property/value mechanism.
     * 
     *  @property additionalProperty
     *  @type PropertyValue
     */
    prototype.additionalProperty = null;
    /**
     *  Schema.org/valueReference
     *  A pointer to a secondary value that provides additional information on the original value, e.g. a reference temperature.
     * 
     *  @property valueReference
     *  @type StructuredValue
     */
    prototype.valueReference = null;
    /**
     *  Schema.org/maxValue
     *  The upper value of some characteristic or property.
     * 
     *  @property maxValue
     *  @type Number
     */
    prototype.maxValue = null;
    /**
     *  Schema.org/unitText
     *  A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for
     *  <a href='unitCode'>unitCode</a>.
     * 
     *  @property unitText
     *  @type Text
     */
    prototype.unitText = null;
}, {value: "StructuredValue", additionalProperty: "PropertyValue", valueReference: "StructuredValue", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/WarrantyPromise
 *  A structured value representing the duration and scope of services that will be provided to a customer free of charge in case of a defect or malfunction of a product.
 * 
 *  @author schema.org
 *  @class WarrantyPromise
 *  @module org.schema
 *  @extends StructuredValue
 */
var WarrantyPromise = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "WarrantyPromise";
};
WarrantyPromise = stjs.extend(WarrantyPromise, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/durationOfWarranty
     *  The duration of the warranty promise. Common unitCode values are ANN for year, MON for months, or DAY for days.
     * 
     *  @property durationOfWarranty
     *  @type QuantitativeValue
     */
    prototype.durationOfWarranty = null;
    /**
     *  Schema.org/warrantyScope
     *  The scope of the warranty promise.
     * 
     *  @property warrantyScope
     *  @type WarrantyScope
     */
    prototype.warrantyScope = null;
}, {durationOfWarranty: "QuantitativeValue", warrantyScope: "WarrantyScope", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/InteractionCounter
 *  A summary of how users have interacted with this CreativeWork. In most cases, authors will use a subtype to specify the specific type of interaction.
 * 
 *  @author schema.org
 *  @class InteractionCounter
 *  @module org.schema
 *  @extends StructuredValue
 */
var InteractionCounter = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "InteractionCounter";
};
InteractionCounter = stjs.extend(InteractionCounter, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/interactionService
     *  The WebSite or SoftwareApplication where the interactions took place.
     * 
     *  @property interactionService
     *  @type SoftwareApplication
     */
    prototype.interactionService = null;
    /**
     *  Schema.org/userInteractionCount
     *  The number of interactions for the CreativeWork using the WebSite or SoftwareApplication.
     * 
     *  @property userInteractionCount
     *  @type Integer
     */
    prototype.userInteractionCount = null;
    /**
     *  Schema.org/interactionType
     *  The Action representing the type of interaction. For up votes, +1s, etc. use [[LikeAction]]. For down votes use [[DislikeAction]]. Otherwise, use the most specific Action.
     * 
     *  @property interactionType
     *  @type Action
     */
    prototype.interactionType = null;
}, {interactionService: "SoftwareApplication", interactionType: "Action", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/OwnershipInfo
 *  A structured value providing information about when a certain organization or person owned a certain product.
 * 
 *  @author schema.org
 *  @class OwnershipInfo
 *  @module org.schema
 *  @extends StructuredValue
 */
var OwnershipInfo = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "OwnershipInfo";
};
OwnershipInfo = stjs.extend(OwnershipInfo, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/typeOfGood
     *  The product that this structured value is referring to.
     * 
     *  @property typeOfGood
     *  @type Service
     */
    prototype.typeOfGood = null;
    /**
     *  Schema.org/ownedFrom
     *  The date and time of obtaining the product.
     * 
     *  @property ownedFrom
     *  @type DateTime
     */
    prototype.ownedFrom = null;
    /**
     *  Schema.org/ownedThrough
     *  The date and time of giving up ownership on the product.
     * 
     *  @property ownedThrough
     *  @type DateTime
     */
    prototype.ownedThrough = null;
    /**
     *  Schema.org/acquiredFrom
     *  The organization or person from which the product was acquired.
     * 
     *  @property acquiredFrom
     *  @type Person
     */
    prototype.acquiredFrom = null;
}, {typeOfGood: "Service", acquiredFrom: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PriceSpecification
 *  A structured value representing a price or price range. Typically, only the subclasses of this type are used for markup. It is recommended to use [[MonetaryAmount]] to describe independent amounts of money such as a salary, credit card limits, etc.
 * 
 *  @author schema.org
 *  @class PriceSpecification
 *  @module org.schema
 *  @extends StructuredValue
 */
var PriceSpecification = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "PriceSpecification";
};
PriceSpecification = stjs.extend(PriceSpecification, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/minPrice
     *  The lowest price if the price is a range.
     * 
     *  @property minPrice
     *  @type Number
     */
    prototype.minPrice = null;
    /**
     *  Schema.org/eligibleTransactionVolume
     *  The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases to a certain minimal amount.
     * 
     *  @property eligibleTransactionVolume
     *  @type PriceSpecification
     */
    prototype.eligibleTransactionVolume = null;
    /**
     *  Schema.org/maxPrice
     *  The highest price if the price is a range.
     * 
     *  @property maxPrice
     *  @type Number
     */
    prototype.maxPrice = null;
    /**
     *  Schema.org/priceCurrency
     *  The currency (in 3-letter ISO 4217 format) of the price or a price component, when attached to [[PriceSpecification]] and its subtypes.
     * 
     *  @property priceCurrency
     *  @type Text
     */
    prototype.priceCurrency = null;
    /**
     *  Schema.org/eligibleQuantity
     *  The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity.
     * 
     *  @property eligibleQuantity
     *  @type QuantitativeValue
     */
    prototype.eligibleQuantity = null;
    /**
     *  Schema.org/validFrom
     *  The date when the item becomes valid.
     * 
     *  @property validFrom
     *  @type DateTime
     */
    prototype.validFrom = null;
    /**
     *  Schema.org/validThrough
     *  The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.
     * 
     *  @property validThrough
     *  @type DateTime
     */
    prototype.validThrough = null;
    /**
     *  Schema.org/price
     *  The offer price of a product, or of a price component when attached to PriceSpecification and its subtypes.\n\nUsage guidelines:\n\n* Use the [[priceCurrency]] property (with [ISO 4217 codes](http://en.wikipedia.org/wiki/ISO_4217#Active_codes) e.g. "USD") instead of
     *  including [ambiguous symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign) such as '$' in the value.\n* Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator.\n* Note that both [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute) and Microdata syntax allow the use of a "content=" attribute for publishing simple machine-readable values alongside more human-friendly formatting.\n* Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT NINE' (U+0039)) rather than superficially similiar Unicode symbols.
     * 
     *  @property price
     *  @type Number
     */
    prototype.price = null;
    /**
     *  Schema.org/valueAddedTaxIncluded
     *  Specifies whether the applicable value-added tax (VAT) is included in the price specification or not.
     * 
     *  @property valueAddedTaxIncluded
     *  @type Boolean
     */
    prototype.valueAddedTaxIncluded = null;
}, {eligibleTransactionVolume: "PriceSpecification", eligibleQuantity: "QuantitativeValue", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/GeoShape
 *  The geographic shape of a place. A GeoShape can be described using several properties whose values are based on latitude/longitude pairs. Either whitespace or commas can be used to separate latitude and longitude; whitespace should be used when writing a list of several such points.
 * 
 *  @author schema.org
 *  @class GeoShape
 *  @module org.schema
 *  @extends StructuredValue
 */
var GeoShape = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "GeoShape";
};
GeoShape = stjs.extend(GeoShape, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/address
     *  Physical address of the item.
     * 
     *  @property address
     *  @type PostalAddress
     */
    prototype.address = null;
    /**
     *  Schema.org/circle
     *  A circle is the circular region of a specified radius centered at a specified latitude and longitude. A circle is expressed as a pair followed by a radius in meters.
     * 
     *  @property circle
     *  @type Text
     */
    prototype.circle = null;
    /**
     *  Schema.org/box
     *  A box is the area enclosed by the rectangle formed by two points. The first point is the lower corner, the second point is the upper corner. A box is expressed as two points separated by a space character.
     * 
     *  @property box
     *  @type Text
     */
    prototype.box = null;
    /**
     *  Schema.org/addressCountry
     *  The country. For example, USA. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1).
     * 
     *  @property addressCountry
     *  @type Text
     */
    prototype.addressCountry = null;
    /**
     *  Schema.org/postalCode
     *  The postal code. For example, 94043.
     * 
     *  @property postalCode
     *  @type Text
     */
    prototype.postalCode = null;
    /**
     *  Schema.org/elevation
     *  The elevation of a location ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).
     * 
     *  @property elevation
     *  @type Text
     */
    prototype.elevation = null;
    /**
     *  Schema.org/polygon
     *  A polygon is the area enclosed by a point-to-point path for which the starting and ending points are the same. A polygon is expressed as a series of four or more space delimited points where the first and final points are identical.
     * 
     *  @property polygon
     *  @type Text
     */
    prototype.polygon = null;
    /**
     *  Schema.org/line
     *  A line is a point-to-point path consisting of two or more points. A line is expressed as a series of two or more point objects separated by space.
     * 
     *  @property line
     *  @type Text
     */
    prototype.line = null;
}, {address: "PostalAddress", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/OpeningHoursSpecification
 *  A structured value providing information about the opening hours of a place or a certain service inside a place.\n\n
 *  The place is __open__ if the [[opens]] property is specified, and __closed__ otherwise.\n\nIf the value for the [[closes]] property is less than the value for the [[opens]] property then the hour range is assumed to span over the next day.
 * 
 *  @author schema.org
 *  @class OpeningHoursSpecification
 *  @module org.schema
 *  @extends StructuredValue
 */
var OpeningHoursSpecification = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "OpeningHoursSpecification";
};
OpeningHoursSpecification = stjs.extend(OpeningHoursSpecification, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/validFrom
     *  The date when the item becomes valid.
     * 
     *  @property validFrom
     *  @type DateTime
     */
    prototype.validFrom = null;
    /**
     *  Schema.org/validThrough
     *  The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.
     * 
     *  @property validThrough
     *  @type DateTime
     */
    prototype.validThrough = null;
    /**
     *  Schema.org/opens
     *  The opening hour of the place or service on the given day(s) of the week.
     * 
     *  @property opens
     *  @type Time
     */
    prototype.opens = null;
    /**
     *  Schema.org/closes
     *  The closing hour of the place or service on the given day(s) of the week.
     * 
     *  @property closes
     *  @type Time
     */
    prototype.closes = null;
    /**
     *  Schema.org/dayOfWeek
     *  The day of the week for which these opening hours are valid.
     * 
     *  @property dayOfWeek
     *  @type DayOfWeek
     */
    prototype.dayOfWeek = null;
}, {dayOfWeek: "DayOfWeek", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DatedMoneySpecification
 *  A DatedMoneySpecification represents monetary values with optional start and end dates. For example, this could represent an employee's salary over a specific period of time. __Note:__ This type has been superseded by [[MonetaryAmount]] use of that type is recommended
 * 
 *  @author schema.org
 *  @class DatedMoneySpecification
 *  @module org.schema
 *  @extends StructuredValue
 */
var DatedMoneySpecification = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "DatedMoneySpecification";
};
DatedMoneySpecification = stjs.extend(DatedMoneySpecification, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/endDate
     *  The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).
     * 
     *  @property endDate
     *  @type DateTime
     */
    prototype.endDate = null;
    /**
     *  Schema.org/amount
     *  The amount of money.
     * 
     *  @property amount
     *  @type Number
     */
    prototype.amount = null;
    /**
     *  Schema.org/startDate
     *  The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).
     * 
     *  @property startDate
     *  @type Date
     */
    prototype.startDate = null;
    /**
     *  Schema.org/currency
     *  The currency in which the monetary amount is expressed (in 3-letter [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) format).
     * 
     *  @property currency
     *  @type Text
     */
    prototype.currency = null;
}, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ContactPoint
 *  A contact point&#x2014;for example, a Customer Complaints department.
 * 
 *  @author schema.org
 *  @class ContactPoint
 *  @module org.schema
 *  @extends StructuredValue
 */
var ContactPoint = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "ContactPoint";
};
ContactPoint = stjs.extend(ContactPoint, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/serviceArea
     *  The geographic area where the service is provided.
     * 
     *  @property serviceArea
     *  @type GeoShape
     */
    prototype.serviceArea = null;
    /**
     *  Schema.org/hoursAvailable
     *  The hours during which this service or contact is available.
     * 
     *  @property hoursAvailable
     *  @type OpeningHoursSpecification
     */
    prototype.hoursAvailable = null;
    /**
     *  Schema.org/contactOption
     *  An option available on this contact point (e.g. a toll-free number or support for hearing-impaired callers).
     * 
     *  @property contactOption
     *  @type ContactPointOption
     */
    prototype.contactOption = null;
    /**
     *  Schema.org/availableLanguage
     *  A language someone may use with the item. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[inLanguage]]
     * 
     *  @property availableLanguage
     *  @type Language
     */
    prototype.availableLanguage = null;
    /**
     *  Schema.org/telephone
     *  The telephone number.
     * 
     *  @property telephone
     *  @type Text
     */
    prototype.telephone = null;
    /**
     *  Schema.org/email
     *  Email address.
     * 
     *  @property email
     *  @type Text
     */
    prototype.email = null;
    /**
     *  Schema.org/contactType
     *  A person or organization can have different contact points, for different purposes. For example, a sales contact point, a PR contact point and so on. This property is used to specify the kind of contact point.
     * 
     *  @property contactType
     *  @type Text
     */
    prototype.contactType = null;
    /**
     *  Schema.org/productSupported
     *  The product or service this support contact point is related to (such as product support for a particular product line). This can be a specific product or product line (e.g. "iPhone") or a general category of products or services (e.g. "smartphones").
     * 
     *  @property productSupported
     *  @type Text
     */
    prototype.productSupported = null;
    /**
     *  Schema.org/faxNumber
     *  The fax number.
     * 
     *  @property faxNumber
     *  @type Text
     */
    prototype.faxNumber = null;
    /**
     *  Schema.org/areaServed
     *  The geographic area where a service or offered item is provided.
     * 
     *  @property areaServed
     *  @type Place
     */
    prototype.areaServed = null;
}, {serviceArea: "GeoShape", hoursAvailable: "OpeningHoursSpecification", contactOption: "ContactPointOption", availableLanguage: "Language", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MonetaryAmount
 *  A monetary value or range. This type can be used to describe an amount of money such as $50 USD, or a range as in describing a bank account being suitable for a balance between £1,000 and £1,000,000 GBP, or the value of a salary, etc. It is recommended to use [[PriceSpecification]] Types to describe the price of an Offer, Invoice, etc.
 * 
 *  @author schema.org
 *  @class MonetaryAmount
 *  @module org.schema
 *  @extends StructuredValue
 */
var MonetaryAmount = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "MonetaryAmount";
};
MonetaryAmount = stjs.extend(MonetaryAmount, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/minValue
     *  The lower value of some characteristic or property.
     * 
     *  @property minValue
     *  @type Number
     */
    prototype.minValue = null;
    /**
     *  Schema.org/value
     *  The value of the quantitative value or property value node.\n\n* For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is 'Number'.\n* For [[PropertyValue]], it can be 'Text;', 'Number', 'Boolean', or 'StructuredValue'.
     * 
     *  @property value
     *  @type StructuredValue
     */
    prototype.value = null;
    /**
     *  Schema.org/validFrom
     *  The date when the item becomes valid.
     * 
     *  @property validFrom
     *  @type DateTime
     */
    prototype.validFrom = null;
    /**
     *  Schema.org/validThrough
     *  The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.
     * 
     *  @property validThrough
     *  @type DateTime
     */
    prototype.validThrough = null;
    /**
     *  Schema.org/maxValue
     *  The upper value of some characteristic or property.
     * 
     *  @property maxValue
     *  @type Number
     */
    prototype.maxValue = null;
    /**
     *  Schema.org/currency
     *  The currency in which the monetary amount is expressed (in 3-letter [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) format).
     * 
     *  @property currency
     *  @type Text
     */
    prototype.currency = null;
}, {value: "StructuredValue", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TypeAndQuantityNode
 *  A structured value indicating the quantity, unit of measurement, and business function of goods included in a bundle offer.
 * 
 *  @author schema.org
 *  @class TypeAndQuantityNode
 *  @module org.schema
 *  @extends StructuredValue
 */
var TypeAndQuantityNode = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "TypeAndQuantityNode";
};
TypeAndQuantityNode = stjs.extend(TypeAndQuantityNode, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/unitCode
     *  The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon.
     * 
     *  @property unitCode
     *  @type Text
     */
    prototype.unitCode = null;
    /**
     *  Schema.org/typeOfGood
     *  The product that this structured value is referring to.
     * 
     *  @property typeOfGood
     *  @type Service
     */
    prototype.typeOfGood = null;
    /**
     *  Schema.org/amountOfThisGood
     *  The quantity of the goods included in the offer.
     * 
     *  @property amountOfThisGood
     *  @type Number
     */
    prototype.amountOfThisGood = null;
    /**
     *  Schema.org/unitText
     *  A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for
     *  <a href='unitCode'>unitCode</a>.
     * 
     *  @property unitText
     *  @type Text
     */
    prototype.unitText = null;
    /**
     *  Schema.org/businessFunction
     *  The business function (e.g. sell, lease, repair, dispose) of the offer or component of a bundle (TypeAndQuantityNode). The default is http://purl.org/goodrelations/v1#Sell.
     * 
     *  @property businessFunction
     *  @type BusinessFunction
     */
    prototype.businessFunction = null;
}, {typeOfGood: "Service", businessFunction: "BusinessFunction", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/EngineSpecification
 *  Information about the engine of the vehicle. A vehicle can have multiple engines represented by multiple engine specification entities.
 * 
 *  @author schema.org
 *  @class EngineSpecification
 *  @module org.schema
 *  @extends StructuredValue
 */
var EngineSpecification = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    StructuredValue.call(this);
    this.context = "http://schema.org/";
    this.type = "EngineSpecification";
};
EngineSpecification = stjs.extend(EngineSpecification, StructuredValue, [], function(constructor, prototype) {
    /**
     *  Schema.org/fuelType
     *  The type of fuel suitable for the engine or engines of the vehicle. If the vehicle has only one engine, this property can be attached directly to the vehicle.
     * 
     *  @property fuelType
     *  @type Text
     */
    prototype.fuelType = null;
}, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/AggregateRating
 *  The average rating based on multiple ratings or reviews.
 * 
 *  @author schema.org
 *  @class AggregateRating
 *  @module org.schema
 *  @extends Rating
 */
var AggregateRating = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Rating.call(this);
    this.context = "http://schema.org/";
    this.type = "AggregateRating";
};
AggregateRating = stjs.extend(AggregateRating, Rating, [], function(constructor, prototype) {
    /**
     *  Schema.org/itemReviewed
     *  The item that is being reviewed/rated.
     * 
     *  @property itemReviewed
     *  @type Thing
     */
    prototype.itemReviewed = null;
    /**
     *  Schema.org/reviewCount
     *  The count of total number of reviews.
     * 
     *  @property reviewCount
     *  @type Integer
     */
    prototype.reviewCount = null;
    /**
     *  Schema.org/ratingCount
     *  The count of total number of ratings.
     * 
     *  @property ratingCount
     *  @type Integer
     */
    prototype.ratingCount = null;
}, {itemReviewed: "Thing", author: "Person", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BusinessAudience
 *  A set of characteristics belonging to businesses, e.g. who compose an item's target audience.
 * 
 *  @author schema.org
 *  @class BusinessAudience
 *  @module org.schema
 *  @extends Audience
 */
var BusinessAudience = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Audience.call(this);
    this.context = "http://schema.org/";
    this.type = "BusinessAudience";
};
BusinessAudience = stjs.extend(BusinessAudience, Audience, [], function(constructor, prototype) {
    /**
     *  Schema.org/yearsInOperation
     *  The age of the business.
     * 
     *  @property yearsInOperation
     *  @type QuantitativeValue
     */
    prototype.yearsInOperation = null;
    /**
     *  Schema.org/yearlyRevenue
     *  The size of the business in annual revenue.
     * 
     *  @property yearlyRevenue
     *  @type QuantitativeValue
     */
    prototype.yearlyRevenue = null;
    /**
     *  Schema.org/numberOfEmployees
     *  The number of employees in an organization e.g. business.
     * 
     *  @property numberOfEmployees
     *  @type QuantitativeValue
     */
    prototype.numberOfEmployees = null;
}, {yearsInOperation: "QuantitativeValue", yearlyRevenue: "QuantitativeValue", numberOfEmployees: "QuantitativeValue", geographicArea: "AdministrativeArea", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/EducationalAudience
 *  An EducationalAudience.
 * 
 *  @author schema.org
 *  @class EducationalAudience
 *  @module org.schema
 *  @extends Audience
 */
var EducationalAudience = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Audience.call(this);
    this.context = "http://schema.org/";
    this.type = "EducationalAudience";
};
EducationalAudience = stjs.extend(EducationalAudience, Audience, [], function(constructor, prototype) {
    /**
     *  Schema.org/educationalRole
     *  An educationalRole of an EducationalAudience.
     * 
     *  @property educationalRole
     *  @type Text
     */
    prototype.educationalRole = null;
}, {geographicArea: "AdministrativeArea", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PeopleAudience
 *  A set of characteristics belonging to people, e.g. who compose an item's target audience.
 * 
 *  @author schema.org
 *  @class PeopleAudience
 *  @module org.schema
 *  @extends Audience
 */
var PeopleAudience = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Audience.call(this);
    this.context = "http://schema.org/";
    this.type = "PeopleAudience";
};
PeopleAudience = stjs.extend(PeopleAudience, Audience, [], function(constructor, prototype) {
    /**
     *  Schema.org/suggestedMaxAge
     *  Maximal age recommended for viewing content.
     * 
     *  @property suggestedMaxAge
     *  @type Number
     */
    prototype.suggestedMaxAge = null;
    /**
     *  Schema.org/requiredMinAge
     *  Audiences defined by a person's minimum age.
     * 
     *  @property requiredMinAge
     *  @type Integer
     */
    prototype.requiredMinAge = null;
    /**
     *  Schema.org/requiredGender
     *  Audiences defined by a person's gender.
     * 
     *  @property requiredGender
     *  @type Text
     */
    prototype.requiredGender = null;
    /**
     *  Schema.org/suggestedGender
     *  The gender of the person or audience.
     * 
     *  @property suggestedGender
     *  @type Text
     */
    prototype.suggestedGender = null;
    /**
     *  Schema.org/requiredMaxAge
     *  Audiences defined by a person's maximum age.
     * 
     *  @property requiredMaxAge
     *  @type Integer
     */
    prototype.requiredMaxAge = null;
    /**
     *  Schema.org/suggestedMinAge
     *  Minimal age recommended for viewing content.
     * 
     *  @property suggestedMinAge
     *  @type Number
     */
    prototype.suggestedMinAge = null;
}, {geographicArea: "AdministrativeArea", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/OfferCatalog
 *  An OfferCatalog is an ItemList that contains related Offers and/or further OfferCatalogs that are offeredBy the same provider.
 * 
 *  @author schema.org
 *  @class OfferCatalog
 *  @module org.schema
 *  @extends ItemList
 */
var OfferCatalog = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    ItemList.call(this);
    this.context = "http://schema.org/";
    this.type = "OfferCatalog";
};
OfferCatalog = stjs.extend(OfferCatalog, ItemList, [], null, {itemListElement: "ListItem", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BreadcrumbList
 *  A BreadcrumbList is an ItemList consisting of a chain of linked Web pages, typically described using at least their URL and their name, and typically ending with the current page.\n\nThe [[position]] property is used to reconstruct the order of the items in a BreadcrumbList The convention is that a breadcrumb list has an [[itemListOrder]] of [[ItemListOrderAscending]] (lower values listed first), and that the first items in this list correspond to the "top" or beginning of the breadcrumb trail, e.g. with a site or section homepage. The specific values of 'position' are not assigned meaning for a BreadcrumbList, but they should be integers, e.g. beginning with '1' for the first item in the list.
 * 
 *  @author schema.org
 *  @class BreadcrumbList
 *  @module org.schema
 *  @extends ItemList
 */
var BreadcrumbList = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    ItemList.call(this);
    this.context = "http://schema.org/";
    this.type = "BreadcrumbList";
};
BreadcrumbList = stjs.extend(BreadcrumbList, ItemList, [], null, {itemListElement: "ListItem", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PerformanceRole
 *  A PerformanceRole is a Role that some entity places with regard to a theatrical performance, e.g. in a Movie, TVSeries etc.
 * 
 *  @author schema.org
 *  @class PerformanceRole
 *  @module org.schema
 *  @extends Role
 */
var PerformanceRole = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Role.call(this);
    this.context = "http://schema.org/";
    this.type = "PerformanceRole";
};
PerformanceRole = stjs.extend(PerformanceRole, Role, [], function(constructor, prototype) {
    /**
     *  Schema.org/characterName
     *  The name of a character played in some acting or performing role, i.e. in a PerformanceRole.
     * 
     *  @property characterName
     *  @type Text
     */
    prototype.characterName = null;
}, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/OrganizationRole
 *  A subclass of Role used to describe roles within organizations.
 * 
 *  @author schema.org
 *  @class OrganizationRole
 *  @module org.schema
 *  @extends Role
 */
var OrganizationRole = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Role.call(this);
    this.context = "http://schema.org/";
    this.type = "OrganizationRole";
};
OrganizationRole = stjs.extend(OrganizationRole, Role, [], function(constructor, prototype) {
    /**
     *  Schema.org/numberedPosition
     *  A number associated with a role in an organization, for example, the number on an athlete's jersey.
     * 
     *  @property numberedPosition
     *  @type Number
     */
    prototype.numberedPosition = null;
}, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ItemListOrderType
 *  Enumerated for values for itemListOrder for indicating how an ordered ItemList is organized.
 * 
 *  @author schema.org
 *  @class ItemListOrderType
 *  @module org.schema
 *  @extends Enumeration
 */
var ItemListOrderType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "ItemListOrderType";
};
ItemListOrderType = stjs.extend(ItemListOrderType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DayOfWeek
 *  The day of the week, e.g. used to specify to which day the opening hours of an OpeningHoursSpecification refer.
 *  <p>
 *  Originally, URLs from [GoodRelations](http://purl.org/goodrelations/v1) were used (for [[Monday]], [[Tuesday]], [[Wednesday]], [[Thursday]], [[Friday]], [[Saturday]], [[Sunday]] plus a special entry for [[PublicHolidays]]); these have now been integrated directly into schema.org.
 * 
 *  @author schema.org
 *  @class DayOfWeek
 *  @module org.schema
 *  @extends Enumeration
 */
var DayOfWeek = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "DayOfWeek";
};
DayOfWeek = stjs.extend(DayOfWeek, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ReservationStatusType
 *  Enumerated status values for Reservation.
 * 
 *  @author schema.org
 *  @class ReservationStatusType
 *  @module org.schema
 *  @extends Enumeration
 */
var ReservationStatusType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "ReservationStatusType";
};
ReservationStatusType = stjs.extend(ReservationStatusType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/RestrictedDiet
 *  A diet restricted to certain foods or preparations for cultural, religious, health or lifestyle reasons.
 * 
 *  @author schema.org
 *  @class RestrictedDiet
 *  @module org.schema
 *  @extends Enumeration
 */
var RestrictedDiet = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "RestrictedDiet";
};
RestrictedDiet = stjs.extend(RestrictedDiet, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PaymentStatusType
 *  A specific payment status. For example, PaymentDue, PaymentComplete, etc.
 * 
 *  @author schema.org
 *  @class PaymentStatusType
 *  @module org.schema
 *  @extends Enumeration
 */
var PaymentStatusType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "PaymentStatusType";
};
PaymentStatusType = stjs.extend(PaymentStatusType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ActionStatusType
 *  The status of an Action.
 * 
 *  @author schema.org
 *  @class ActionStatusType
 *  @module org.schema
 *  @extends Enumeration
 */
var ActionStatusType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "ActionStatusType";
};
ActionStatusType = stjs.extend(ActionStatusType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MapCategoryType
 *  An enumeration of several kinds of Map.
 * 
 *  @author schema.org
 *  @class MapCategoryType
 *  @module org.schema
 *  @extends Enumeration
 */
var MapCategoryType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "MapCategoryType";
};
MapCategoryType = stjs.extend(MapCategoryType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/GenderType
 *  An enumeration of genders.
 * 
 *  @author schema.org
 *  @class GenderType
 *  @module org.schema
 *  @extends Enumeration
 */
var GenderType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "GenderType";
};
GenderType = stjs.extend(GenderType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BusinessFunction
 *  The business function specifies the type of activity or access (i.e., the bundle of rights) offered by the organization or business person through the offer. Typical are sell, rental or lease, maintenance or repair, manufacture / produce, recycle / dispose, engineering / construction, or installation. Proprietary specifications of access rights are also instances of this class.\n\nCommonly used values:\n\n* http://purl.org/goodrelations/v1#ConstructionInstallation\n* http://purl.org/goodrelations/v1#Dispose\n* http://purl.org/goodrelations/v1#LeaseOut\n* http://purl.org/goodrelations/v1#Maintain\n* http://purl.org/goodrelations/v1#ProvideService\n* http://purl.org/goodrelations/v1#Repair\n* http://purl.org/goodrelations/v1#Sell\n* http://purl.org/goodrelations/v1#Buy
 * 
 *  @author schema.org
 *  @class BusinessFunction
 *  @module org.schema
 *  @extends Enumeration
 */
var BusinessFunction = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "BusinessFunction";
};
BusinessFunction = stjs.extend(BusinessFunction, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PaymentMethod
 *  A payment method is a standardized procedure for transferring the monetary amount for a purchase. Payment methods are characterized by the legal and technical structures used, and by the organization or group carrying out the transaction.\n\nCommonly used values:\n\n* http://purl.org/goodrelations/v1#ByBankTransferInAdvance\n* http://purl.org/goodrelations/v1#ByInvoice\n* http://purl.org/goodrelations/v1#Cash\n* http://purl.org/goodrelations/v1#CheckInAdvance\n* http://purl.org/goodrelations/v1#COD\n* http://purl.org/goodrelations/v1#DirectDebit\n* http://purl.org/goodrelations/v1#GoogleCheckout\n* http://purl.org/goodrelations/v1#PayPal\n* http://purl.org/goodrelations/v1#PaySwarm
 * 
 *  @author schema.org
 *  @class PaymentMethod
 *  @module org.schema
 *  @extends Enumeration
 */
var PaymentMethod = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "PaymentMethod";
};
PaymentMethod = stjs.extend(PaymentMethod, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MusicAlbumProductionType
 *  Classification of the album by it's type of content: soundtrack, live album, studio album, etc.
 * 
 *  @author schema.org
 *  @class MusicAlbumProductionType
 *  @module org.schema
 *  @extends Enumeration
 */
var MusicAlbumProductionType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "MusicAlbumProductionType";
};
MusicAlbumProductionType = stjs.extend(MusicAlbumProductionType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ItemAvailability
 *  A list of possible product availability options.
 * 
 *  @author schema.org
 *  @class ItemAvailability
 *  @module org.schema
 *  @extends Enumeration
 */
var ItemAvailability = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "ItemAvailability";
};
ItemAvailability = stjs.extend(ItemAvailability, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/OrderStatus
 *  Enumerated status values for Order.
 * 
 *  @author schema.org
 *  @class OrderStatus
 *  @module org.schema
 *  @extends Enumeration
 */
var OrderStatus = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "OrderStatus";
};
OrderStatus = stjs.extend(OrderStatus, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/RsvpResponseType
 *  RsvpResponseType is an enumeration type whose instances represent responding to an RSVP request.
 * 
 *  @author schema.org
 *  @class RsvpResponseType
 *  @module org.schema
 *  @extends Enumeration
 */
var RsvpResponseType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "RsvpResponseType";
};
RsvpResponseType = stjs.extend(RsvpResponseType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/EventStatusType
 *  EventStatusType is an enumeration type whose instances represent several states that an SchemaEvent may be in.
 * 
 *  @author schema.org
 *  @class EventStatusType
 *  @module org.schema
 *  @extends Enumeration
 */
var EventStatusType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "EventStatusType";
};
EventStatusType = stjs.extend(EventStatusType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ContactPointOption
 *  Enumerated options related to a ContactPoint.
 * 
 *  @author schema.org
 *  @class ContactPointOption
 *  @module org.schema
 *  @extends Enumeration
 */
var ContactPointOption = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "ContactPointOption";
};
ContactPointOption = stjs.extend(ContactPointOption, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Specialty
 *  Any branch of a field in which people typically develop specific expertise, usually after significant study, time, and effort.
 * 
 *  @author schema.org
 *  @class Specialty
 *  @module org.schema
 *  @extends Enumeration
 */
var Specialty = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "Specialty";
};
Specialty = stjs.extend(Specialty, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MusicReleaseFormatType
 *  Format of this release (the type of recording media used, ie. compact disc, digital media, LP, etc.).
 * 
 *  @author schema.org
 *  @class MusicReleaseFormatType
 *  @module org.schema
 *  @extends Enumeration
 */
var MusicReleaseFormatType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "MusicReleaseFormatType";
};
MusicReleaseFormatType = stjs.extend(MusicReleaseFormatType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DeliveryMethod
 *  A delivery method is a standardized procedure for transferring the product or service to the destination of fulfillment chosen by the customer. Delivery methods are characterized by the means of transportation used, and by the organization or group that is the contracting party for the sending organization or person.\n\nCommonly used values:\n\n* http://purl.org/goodrelations/v1#DeliveryModeDirectDownload\n* http://purl.org/goodrelations/v1#DeliveryModeFreight\n* http://purl.org/goodrelations/v1#DeliveryModeMail\n* http://purl.org/goodrelations/v1#DeliveryModeOwnFleet\n* http://purl.org/goodrelations/v1#DeliveryModePickUp\n* http://purl.org/goodrelations/v1#DHL\n* http://purl.org/goodrelations/v1#FederalExpress\n* http://purl.org/goodrelations/v1#UPS
 * 
 *  @author schema.org
 *  @class DeliveryMethod
 *  @module org.schema
 *  @extends Enumeration
 */
var DeliveryMethod = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "DeliveryMethod";
};
DeliveryMethod = stjs.extend(DeliveryMethod, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MusicAlbumReleaseType
 *  The kind of release which this album is: single, EP or album.
 * 
 *  @author schema.org
 *  @class MusicAlbumReleaseType
 *  @module org.schema
 *  @extends Enumeration
 */
var MusicAlbumReleaseType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "MusicAlbumReleaseType";
};
MusicAlbumReleaseType = stjs.extend(MusicAlbumReleaseType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/WarrantyScope
 *  A range of of services that will be provided to a customer free of charge in case of a defect or malfunction of a product.\n\nCommonly used values:\n\n* http://purl.org/goodrelations/v1#Labor-BringIn\n* http://purl.org/goodrelations/v1#PartsAndLabor-BringIn\n* http://purl.org/goodrelations/v1#PartsAndLabor-PickUp
 * 
 *  @author schema.org
 *  @class WarrantyScope
 *  @module org.schema
 *  @extends Enumeration
 */
var WarrantyScope = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "WarrantyScope";
};
WarrantyScope = stjs.extend(WarrantyScope, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DigitalDocumentPermissionType
 *  A type of permission which can be granted for accessing a digital document.
 * 
 *  @author schema.org
 *  @class DigitalDocumentPermissionType
 *  @module org.schema
 *  @extends Enumeration
 */
var DigitalDocumentPermissionType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "DigitalDocumentPermissionType";
};
DigitalDocumentPermissionType = stjs.extend(DigitalDocumentPermissionType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/OfferItemCondition
 *  A list of possible conditions for the item.
 * 
 *  @author schema.org
 *  @class OfferItemCondition
 *  @module org.schema
 *  @extends Enumeration
 */
var OfferItemCondition = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "OfferItemCondition";
};
OfferItemCondition = stjs.extend(OfferItemCondition, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/GameServerStatus
 *  Status of a game server.
 * 
 *  @author schema.org
 *  @class GameServerStatus
 *  @module org.schema
 *  @extends Enumeration
 */
var GameServerStatus = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "GameServerStatus";
};
GameServerStatus = stjs.extend(GameServerStatus, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BoardingPolicyType
 *  A type of boarding policy used by an airline.
 * 
 *  @author schema.org
 *  @class BoardingPolicyType
 *  @module org.schema
 *  @extends Enumeration
 */
var BoardingPolicyType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "BoardingPolicyType";
};
BoardingPolicyType = stjs.extend(BoardingPolicyType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/QualitativeValue
 *  A predefined value for a product characteristic, e.g. the power cord plug type 'US' or the garment sizes 'S', 'M', 'L', and 'XL'.
 * 
 *  @author schema.org
 *  @class QualitativeValue
 *  @module org.schema
 *  @extends Enumeration
 */
var QualitativeValue = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "QualitativeValue";
};
QualitativeValue = stjs.extend(QualitativeValue, Enumeration, [], function(constructor, prototype) {
    /**
     *  Schema.org/greater
     *  This ordering relation for qualitative values indicates that the subject is greater than the object.
     * 
     *  @property greater
     *  @type QualitativeValue
     */
    prototype.greater = null;
    /**
     *  Schema.org/equal
     *  This ordering relation for qualitative values indicates that the subject is equal to the object.
     * 
     *  @property equal
     *  @type QualitativeValue
     */
    prototype.equal = null;
    /**
     *  Schema.org/nonEqual
     *  This ordering relation for qualitative values indicates that the subject is not equal to the object.
     * 
     *  @property nonEqual
     *  @type QualitativeValue
     */
    prototype.nonEqual = null;
    /**
     *  Schema.org/additionalProperty
     *  A property-value pair representing an additional characteristics of the entitity, e.g. a product feature or another characteristic for which there is no matching property in schema.org.\n\nNote: Publishers should be aware that applications designed to use specific schema.org properties (e.g. schema:width, schema:color, schema:gtin13, ...) will typically expect such data to be provided using those properties, rather than using the generic property/value mechanism.
     * 
     *  @property additionalProperty
     *  @type PropertyValue
     */
    prototype.additionalProperty = null;
    /**
     *  Schema.org/lesser
     *  This ordering relation for qualitative values indicates that the subject is lesser than the object.
     * 
     *  @property lesser
     *  @type QualitativeValue
     */
    prototype.lesser = null;
    /**
     *  Schema.org/valueReference
     *  A pointer to a secondary value that provides additional information on the original value, e.g. a reference temperature.
     * 
     *  @property valueReference
     *  @type StructuredValue
     */
    prototype.valueReference = null;
    /**
     *  Schema.org/lesserOrEqual
     *  This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.
     * 
     *  @property lesserOrEqual
     *  @type QualitativeValue
     */
    prototype.lesserOrEqual = null;
    /**
     *  Schema.org/greaterOrEqual
     *  This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.
     * 
     *  @property greaterOrEqual
     *  @type QualitativeValue
     */
    prototype.greaterOrEqual = null;
}, {greater: "QualitativeValue", equal: "QualitativeValue", nonEqual: "QualitativeValue", additionalProperty: "PropertyValue", lesser: "QualitativeValue", valueReference: "StructuredValue", lesserOrEqual: "QualitativeValue", greaterOrEqual: "QualitativeValue", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BusinessEntityType
 *  A business entity type is a conceptual entity representing the legal form, the size, the main line of business, the position in the value chain, or any combination thereof, of an organization or business person.\n\nCommonly used values:\n\n* http://purl.org/goodrelations/v1#Business\n* http://purl.org/goodrelations/v1#Enduser\n* http://purl.org/goodrelations/v1#PublicInstitution\n* http://purl.org/goodrelations/v1#Reseller
 * 
 *  @author schema.org
 *  @class BusinessEntityType
 *  @module org.schema
 *  @extends Enumeration
 */
var BusinessEntityType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "BusinessEntityType";
};
BusinessEntityType = stjs.extend(BusinessEntityType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BookFormatType
 *  The publication format of the book.
 * 
 *  @author schema.org
 *  @class BookFormatType
 *  @module org.schema
 *  @extends Enumeration
 */
var BookFormatType = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "BookFormatType";
};
BookFormatType = stjs.extend(BookFormatType, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/GamePlayMode
 *  Indicates whether this game is multi-player, co-op or single-player.
 * 
 *  @author schema.org
 *  @class GamePlayMode
 *  @module org.schema
 *  @extends Enumeration
 */
var GamePlayMode = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Enumeration.call(this);
    this.context = "http://schema.org/";
    this.type = "GamePlayMode";
};
GamePlayMode = stjs.extend(GamePlayMode, Enumeration, [], null, {identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/CableOrSatelliteService
 *  A service which provides access to media programming like TV or radio. Access may be via cable or satellite.
 * 
 *  @author schema.org
 *  @class CableOrSatelliteService
 *  @module org.schema
 *  @extends Service
 */
var CableOrSatelliteService = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Service.call(this);
    this.context = "http://schema.org/";
    this.type = "CableOrSatelliteService";
};
CableOrSatelliteService = stjs.extend(CableOrSatelliteService, Service, [], null, {serviceAudience: "Audience", serviceArea: "GeoShape", provider: "Person", audience: "Audience", hasOfferCatalog: "OfferCatalog", hoursAvailable: "OpeningHoursSpecification", aggregateRating: "AggregateRating", offers: "Offer", broker: "Person", serviceOutput: "Thing", logo: "ImageObject", isSimilarTo: "Product", isRelatedTo: "Product", availableChannel: "ServiceChannel", review: "Review", produces: "Thing", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TaxiService
 *  A service for a vehicle for hire with a driver for local travel. Fares are usually calculated based on distance traveled.
 * 
 *  @author schema.org
 *  @class TaxiService
 *  @module org.schema
 *  @extends Service
 */
var TaxiService = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Service.call(this);
    this.context = "http://schema.org/";
    this.type = "TaxiService";
};
TaxiService = stjs.extend(TaxiService, Service, [], null, {serviceAudience: "Audience", serviceArea: "GeoShape", provider: "Person", audience: "Audience", hasOfferCatalog: "OfferCatalog", hoursAvailable: "OpeningHoursSpecification", aggregateRating: "AggregateRating", offers: "Offer", broker: "Person", serviceOutput: "Thing", logo: "ImageObject", isSimilarTo: "Product", isRelatedTo: "Product", availableChannel: "ServiceChannel", review: "Review", produces: "Thing", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/GovernmentService
 *  A service provided by a government organization, e.g. food stamps, veterans benefits, etc.
 * 
 *  @author schema.org
 *  @class GovernmentService
 *  @module org.schema
 *  @extends Service
 */
var GovernmentService = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Service.call(this);
    this.context = "http://schema.org/";
    this.type = "GovernmentService";
};
GovernmentService = stjs.extend(GovernmentService, Service, [], function(constructor, prototype) {
    /**
     *  Schema.org/serviceOperator
     *  The operating organization, if different from the provider.  This enables the representation of services that are provided by an organization, but operated by another organization like a subcontractor.
     * 
     *  @property serviceOperator
     *  @type Organization
     */
    prototype.serviceOperator = null;
}, {serviceOperator: "Organization", serviceAudience: "Audience", serviceArea: "GeoShape", provider: "Person", audience: "Audience", hasOfferCatalog: "OfferCatalog", hoursAvailable: "OpeningHoursSpecification", aggregateRating: "AggregateRating", offers: "Offer", broker: "Person", serviceOutput: "Thing", logo: "ImageObject", isSimilarTo: "Product", isRelatedTo: "Product", availableChannel: "ServiceChannel", review: "Review", produces: "Thing", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/FoodService
 *  A food service, like breakfast, lunch, or dinner.
 * 
 *  @author schema.org
 *  @class FoodService
 *  @module org.schema
 *  @extends Service
 */
var FoodService = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Service.call(this);
    this.context = "http://schema.org/";
    this.type = "FoodService";
};
FoodService = stjs.extend(FoodService, Service, [], null, {serviceAudience: "Audience", serviceArea: "GeoShape", provider: "Person", audience: "Audience", hasOfferCatalog: "OfferCatalog", hoursAvailable: "OpeningHoursSpecification", aggregateRating: "AggregateRating", offers: "Offer", broker: "Person", serviceOutput: "Thing", logo: "ImageObject", isSimilarTo: "Product", isRelatedTo: "Product", availableChannel: "ServiceChannel", review: "Review", produces: "Thing", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BroadcastService
 *  A delivery service through which content is provided via broadcast over the air or online.
 * 
 *  @author schema.org
 *  @class BroadcastService
 *  @module org.schema
 *  @extends Service
 */
var BroadcastService = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Service.call(this);
    this.context = "http://schema.org/";
    this.type = "BroadcastService";
};
BroadcastService = stjs.extend(BroadcastService, Service, [], function(constructor, prototype) {
    /**
     *  Schema.org/broadcastTimezone
     *  The timezone in [ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601) for which the service bases its broadcasts
     * 
     *  @property broadcastTimezone
     *  @type Text
     */
    prototype.broadcastTimezone = null;
    /**
     *  Schema.org/videoFormat
     *  The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).
     * 
     *  @property videoFormat
     *  @type Text
     */
    prototype.videoFormat = null;
    /**
     *  Schema.org/broadcastAffiliateOf
     *  The media network(s) whose content is broadcast on this station.
     * 
     *  @property broadcastAffiliateOf
     *  @type Organization
     */
    prototype.broadcastAffiliateOf = null;
    /**
     *  Schema.org/parentService
     *  A broadcast service to which the broadcast service may belong to such as regional variations of a national channel.
     * 
     *  @property parentService
     *  @type BroadcastService
     */
    prototype.parentService = null;
    /**
     *  Schema.org/broadcastDisplayName
     *  The name displayed in the channel guide. For many US affiliates, it is the network name.
     * 
     *  @property broadcastDisplayName
     *  @type Text
     */
    prototype.broadcastDisplayName = null;
    /**
     *  Schema.org/area
     *  The area within which users can expect to reach the broadcast service.
     * 
     *  @property area
     *  @type Place
     */
    prototype.area = null;
    /**
     *  Schema.org/broadcaster
     *  The organization owning or operating the broadcast service.
     * 
     *  @property broadcaster
     *  @type Organization
     */
    prototype.broadcaster = null;
}, {broadcastAffiliateOf: "Organization", parentService: "BroadcastService", area: "Place", broadcaster: "Organization", serviceAudience: "Audience", serviceArea: "GeoShape", provider: "Person", audience: "Audience", hasOfferCatalog: "OfferCatalog", hoursAvailable: "OpeningHoursSpecification", aggregateRating: "AggregateRating", offers: "Offer", broker: "Person", serviceOutput: "Thing", logo: "ImageObject", isSimilarTo: "Product", isRelatedTo: "Product", availableChannel: "ServiceChannel", review: "Review", produces: "Thing", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/FinancialProduct
 *  A product provided to consumers and businesses by financial institutions such as banks, insurance companies, brokerage firms, consumer finance companies, and investment companies which comprise the financial services industry.
 * 
 *  @author schema.org
 *  @class FinancialProduct
 *  @module org.schema
 *  @extends Service
 */
var FinancialProduct = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Service.call(this);
    this.context = "http://schema.org/";
    this.type = "FinancialProduct";
};
FinancialProduct = stjs.extend(FinancialProduct, Service, [], function(constructor, prototype) {
    /**
     *  Schema.org/annualPercentageRate
     *  The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.
     * 
     *  @property annualPercentageRate
     *  @type Number
     */
    prototype.annualPercentageRate = null;
    /**
     *  Schema.org/interestRate
     *  The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.
     * 
     *  @property interestRate
     *  @type Number
     */
    prototype.interestRate = null;
    /**
     *  Schema.org/feesAndCommissionsSpecification
     *  Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.
     * 
     *  @property feesAndCommissionsSpecification
     *  @type Text
     */
    prototype.feesAndCommissionsSpecification = null;
}, {serviceAudience: "Audience", serviceArea: "GeoShape", provider: "Person", audience: "Audience", hasOfferCatalog: "OfferCatalog", hoursAvailable: "OpeningHoursSpecification", aggregateRating: "AggregateRating", offers: "Offer", broker: "Person", serviceOutput: "Thing", logo: "ImageObject", isSimilarTo: "Product", isRelatedTo: "Product", availableChannel: "ServiceChannel", review: "Review", produces: "Thing", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Taxi
 *  A taxi.
 * 
 *  @author schema.org
 *  @class Taxi
 *  @module org.schema
 *  @extends Service
 */
var Taxi = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Service.call(this);
    this.context = "http://schema.org/";
    this.type = "Taxi";
};
Taxi = stjs.extend(Taxi, Service, [], null, {serviceAudience: "Audience", serviceArea: "GeoShape", provider: "Person", audience: "Audience", hasOfferCatalog: "OfferCatalog", hoursAvailable: "OpeningHoursSpecification", aggregateRating: "AggregateRating", offers: "Offer", broker: "Person", serviceOutput: "Thing", logo: "ImageObject", isSimilarTo: "Product", isRelatedTo: "Product", availableChannel: "ServiceChannel", review: "Review", produces: "Thing", brand: "Organization", areaServed: "Place", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/RadioChannel
 *  A unique instance of a radio BroadcastService on a CableOrSatelliteService lineup.
 * 
 *  @author schema.org
 *  @class RadioChannel
 *  @module org.schema
 *  @extends BroadcastChannel
 */
var RadioChannel = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    BroadcastChannel.call(this);
    this.context = "http://schema.org/";
    this.type = "RadioChannel";
};
RadioChannel = stjs.extend(RadioChannel, BroadcastChannel, [], null, {inBroadcastLineup: "CableOrSatelliteService", providesBroadcastService: "BroadcastService", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TelevisionChannel
 *  A unique instance of a television BroadcastService on a CableOrSatelliteService lineup.
 * 
 *  @author schema.org
 *  @class TelevisionChannel
 *  @module org.schema
 *  @extends BroadcastChannel
 */
var TelevisionChannel = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    BroadcastChannel.call(this);
    this.context = "http://schema.org/";
    this.type = "TelevisionChannel";
};
TelevisionChannel = stjs.extend(TelevisionChannel, BroadcastChannel, [], null, {inBroadcastLineup: "CableOrSatelliteService", providesBroadcastService: "BroadcastService", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/GovernmentPermit
 *  A permit issued by a government agency.
 * 
 *  @author schema.org
 *  @class GovernmentPermit
 *  @module org.schema
 *  @extends Permit
 */
var GovernmentPermit = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Permit.call(this);
    this.context = "http://schema.org/";
    this.type = "GovernmentPermit";
};
GovernmentPermit = stjs.extend(GovernmentPermit, Permit, [], null, {validFor: "Duration", issuedBy: "Organization", issuedThrough: "Service", permitAudience: "Audience", validIn: "AdministrativeArea", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/AggregateOffer
 *  When a single product is associated with multiple offers (for example, the same pair of shoes is offered by different merchants), then AggregateOffer can be used.
 * 
 *  @author schema.org
 *  @class AggregateOffer
 *  @module org.schema
 *  @extends Offer
 */
var AggregateOffer = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Offer.call(this);
    this.context = "http://schema.org/";
    this.type = "AggregateOffer";
};
AggregateOffer = stjs.extend(AggregateOffer, Offer, [], function(constructor, prototype) {
    /**
     *  Schema.org/offers
     *  An offer to provide this item&#x2014;for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event.
     * 
     *  @property offers
     *  @type Offer
     */
    prototype.offers = null;
    /**
     *  Schema.org/offerCount
     *  The number of offers for the product.
     * 
     *  @property offerCount
     *  @type Integer
     */
    prototype.offerCount = null;
    /**
     *  Schema.org/lowPrice
     *  The lowest price of all offers available.
     * 
     *  @property lowPrice
     *  @type Text
     */
    prototype.lowPrice = null;
    /**
     *  Schema.org/highPrice
     *  The highest price of all offers available.
     * 
     *  @property highPrice
     *  @type Number
     */
    prototype.highPrice = null;
}, {offers: "Offer", availableDeliveryMethod: "DeliveryMethod", ineligibleRegion: "GeoShape", reviews: "Review", availability: "ItemAvailability", priceSpecification: "PriceSpecification", inventoryLevel: "QuantitativeValue", aggregateRating: "AggregateRating", eligibleTransactionVolume: "PriceSpecification", availableAtOrFrom: "Place", addOn: "Offer", warranty: "WarrantyPromise", includesObject: "TypeAndQuantityNode", eligibleQuantity: "QuantitativeValue", seller: "Person", deliveryLeadTime: "QuantitativeValue", review: "Review", eligibleCustomerType: "BusinessEntityType", itemCondition: "OfferItemCondition", itemOffered: "Service", offeredBy: "Organization", eligibleDuration: "QuantitativeValue", acceptedPaymentMethod: "LoanOrCredit", areaServed: "Place", businessFunction: "BusinessFunction", advanceBookingRequirement: "QuantitativeValue", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/BusReservation
 *  A reservation for bus travel. \n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].
 * 
 *  @author schema.org
 *  @class BusReservation
 *  @module org.schema
 *  @extends Reservation
 */
var BusReservation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Reservation.call(this);
    this.context = "http://schema.org/";
    this.type = "BusReservation";
};
BusReservation = stjs.extend(BusReservation, Reservation, [], null, {provider: "Person", programMembershipUsed: "ProgramMembership", reservationStatus: "ReservationStatusType", underName: "Organization", bookingAgent: "Organization", reservationFor: "Thing", broker: "Person", reservedTicket: "Ticket", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/FlightReservation
 *  A reservation for air travel.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].
 * 
 *  @author schema.org
 *  @class FlightReservation
 *  @module org.schema
 *  @extends Reservation
 */
var FlightReservation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Reservation.call(this);
    this.context = "http://schema.org/";
    this.type = "FlightReservation";
};
FlightReservation = stjs.extend(FlightReservation, Reservation, [], function(constructor, prototype) {
    /**
     *  Schema.org/passengerSequenceNumber
     *  The passenger's sequence number as assigned by the airline.
     * 
     *  @property passengerSequenceNumber
     *  @type Text
     */
    prototype.passengerSequenceNumber = null;
    /**
     *  Schema.org/securityScreening
     *  The type of security screening the passenger is subject to.
     * 
     *  @property securityScreening
     *  @type Text
     */
    prototype.securityScreening = null;
    /**
     *  Schema.org/passengerPriorityStatus
     *  The priority status assigned to a passenger for security or boarding (e.g. FastTrack or Priority).
     * 
     *  @property passengerPriorityStatus
     *  @type QualitativeValue
     */
    prototype.passengerPriorityStatus = null;
    /**
     *  Schema.org/boardingGroup
     *  The airline-specific indicator of boarding order / preference.
     * 
     *  @property boardingGroup
     *  @type Text
     */
    prototype.boardingGroup = null;
}, {passengerPriorityStatus: "QualitativeValue", provider: "Person", programMembershipUsed: "ProgramMembership", reservationStatus: "ReservationStatusType", underName: "Organization", bookingAgent: "Organization", reservationFor: "Thing", broker: "Person", reservedTicket: "Ticket", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/RentalCarReservation
 *  A reservation for a rental car.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations.
 * 
 *  @author schema.org
 *  @class RentalCarReservation
 *  @module org.schema
 *  @extends Reservation
 */
var RentalCarReservation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Reservation.call(this);
    this.context = "http://schema.org/";
    this.type = "RentalCarReservation";
};
RentalCarReservation = stjs.extend(RentalCarReservation, Reservation, [], function(constructor, prototype) {
    /**
     *  Schema.org/pickupTime
     *  When a taxi will pickup a passenger or a rental car can be picked up.
     * 
     *  @property pickupTime
     *  @type DateTime
     */
    prototype.pickupTime = null;
    /**
     *  Schema.org/dropoffTime
     *  When a rental car can be dropped off.
     * 
     *  @property dropoffTime
     *  @type DateTime
     */
    prototype.dropoffTime = null;
    /**
     *  Schema.org/dropoffLocation
     *  Where a rental car can be dropped off.
     * 
     *  @property dropoffLocation
     *  @type Place
     */
    prototype.dropoffLocation = null;
    /**
     *  Schema.org/pickupLocation
     *  Where a taxi will pick up a passenger or a rental car can be picked up.
     * 
     *  @property pickupLocation
     *  @type Place
     */
    prototype.pickupLocation = null;
}, {dropoffLocation: "Place", pickupLocation: "Place", provider: "Person", programMembershipUsed: "ProgramMembership", reservationStatus: "ReservationStatusType", underName: "Organization", bookingAgent: "Organization", reservationFor: "Thing", broker: "Person", reservedTicket: "Ticket", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TrainReservation
 *  A reservation for train travel.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].
 * 
 *  @author schema.org
 *  @class TrainReservation
 *  @module org.schema
 *  @extends Reservation
 */
var TrainReservation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Reservation.call(this);
    this.context = "http://schema.org/";
    this.type = "TrainReservation";
};
TrainReservation = stjs.extend(TrainReservation, Reservation, [], null, {provider: "Person", programMembershipUsed: "ProgramMembership", reservationStatus: "ReservationStatusType", underName: "Organization", bookingAgent: "Organization", reservationFor: "Thing", broker: "Person", reservedTicket: "Ticket", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/FoodEstablishmentReservation
 *  A reservation to dine at a food-related business.Note: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations.
 * 
 *  @author schema.org
 *  @class FoodEstablishmentReservation
 *  @module org.schema
 *  @extends Reservation
 */
var FoodEstablishmentReservation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Reservation.call(this);
    this.context = "http://schema.org/";
    this.type = "FoodEstablishmentReservation";
};
FoodEstablishmentReservation = stjs.extend(FoodEstablishmentReservation, Reservation, [], function(constructor, prototype) {
    /**
     *  Schema.org/startTime
     *  The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. e.g. John wrote a book from *January* to December.\n\nNote that SchemaEvent uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.
     * 
     *  @property startTime
     *  @type DateTime
     */
    prototype.startTime = null;
    /**
     *  Schema.org/endTime
     *  The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. e.g. John wrote a book from January to *December*.\n\nNote that SchemaEvent uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.
     * 
     *  @property endTime
     *  @type DateTime
     */
    prototype.endTime = null;
    /**
     *  Schema.org/partySize
     *  Number of people the reservation should accommodate.
     * 
     *  @property partySize
     *  @type Integer
     */
    prototype.partySize = null;
}, {provider: "Person", programMembershipUsed: "ProgramMembership", reservationStatus: "ReservationStatusType", underName: "Organization", bookingAgent: "Organization", reservationFor: "Thing", broker: "Person", reservedTicket: "Ticket", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/LodgingReservation
 *  A reservation for lodging at a hotel, motel, inn, etc.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations.
 * 
 *  @author schema.org
 *  @class LodgingReservation
 *  @module org.schema
 *  @extends Reservation
 */
var LodgingReservation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Reservation.call(this);
    this.context = "http://schema.org/";
    this.type = "LodgingReservation";
};
LodgingReservation = stjs.extend(LodgingReservation, Reservation, [], function(constructor, prototype) {
    /**
     *  Schema.org/checkinTime
     *  The earliest someone may check into a lodging establishment.
     * 
     *  @property checkinTime
     *  @type DateTime
     */
    prototype.checkinTime = null;
    /**
     *  Schema.org/numChildren
     *  The number of children staying in the unit.
     * 
     *  @property numChildren
     *  @type Integer
     */
    prototype.numChildren = null;
    /**
     *  Schema.org/lodgingUnitDescription
     *  A full description of the lodging unit.
     * 
     *  @property lodgingUnitDescription
     *  @type Text
     */
    prototype.lodgingUnitDescription = null;
    /**
     *  Schema.org/checkoutTime
     *  The latest someone may check out of a lodging establishment.
     * 
     *  @property checkoutTime
     *  @type DateTime
     */
    prototype.checkoutTime = null;
    /**
     *  Schema.org/lodgingUnitType
     *  Textual description of the unit type (including suite vs. room, size of bed, etc.).
     * 
     *  @property lodgingUnitType
     *  @type Text
     */
    prototype.lodgingUnitType = null;
    /**
     *  Schema.org/numAdults
     *  The number of adults staying in the unit.
     * 
     *  @property numAdults
     *  @type Integer
     */
    prototype.numAdults = null;
}, {provider: "Person", programMembershipUsed: "ProgramMembership", reservationStatus: "ReservationStatusType", underName: "Organization", bookingAgent: "Organization", reservationFor: "Thing", broker: "Person", reservedTicket: "Ticket", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ReservationPackage
 *  A group of multiple reservations with common values for all sub-reservations.
 * 
 *  @author schema.org
 *  @class ReservationPackage
 *  @module org.schema
 *  @extends Reservation
 */
var ReservationPackage = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Reservation.call(this);
    this.context = "http://schema.org/";
    this.type = "ReservationPackage";
};
ReservationPackage = stjs.extend(ReservationPackage, Reservation, [], function(constructor, prototype) {
    /**
     *  Schema.org/subReservation
     *  The individual reservations included in the package. Typically a repeated property.
     * 
     *  @property subReservation
     *  @type Reservation
     */
    prototype.subReservation = null;
}, {subReservation: "Reservation", provider: "Person", programMembershipUsed: "ProgramMembership", reservationStatus: "ReservationStatusType", underName: "Organization", bookingAgent: "Organization", reservationFor: "Thing", broker: "Person", reservedTicket: "Ticket", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/EventReservation
 *  A reservation for an event like a concert, sporting event, or lecture.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].
 * 
 *  @author schema.org
 *  @class EventReservation
 *  @module org.schema
 *  @extends Reservation
 */
var EventReservation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Reservation.call(this);
    this.context = "http://schema.org/";
    this.type = "EventReservation";
};
EventReservation = stjs.extend(EventReservation, Reservation, [], null, {provider: "Person", programMembershipUsed: "ProgramMembership", reservationStatus: "ReservationStatusType", underName: "Organization", bookingAgent: "Organization", reservationFor: "Thing", broker: "Person", reservedTicket: "Ticket", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TaxiReservation
 *  A reservation for a taxi.\n\nNote: This type is for information about actual reservations, e.g. in confirmation emails or HTML pages with individual confirmations of reservations. For offers of tickets, use [[Offer]].
 * 
 *  @author schema.org
 *  @class TaxiReservation
 *  @module org.schema
 *  @extends Reservation
 */
var TaxiReservation = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Reservation.call(this);
    this.context = "http://schema.org/";
    this.type = "TaxiReservation";
};
TaxiReservation = stjs.extend(TaxiReservation, Reservation, [], function(constructor, prototype) {
    /**
     *  Schema.org/pickupTime
     *  When a taxi will pickup a passenger or a rental car can be picked up.
     * 
     *  @property pickupTime
     *  @type DateTime
     */
    prototype.pickupTime = null;
    /**
     *  Schema.org/partySize
     *  Number of people the reservation should accommodate.
     * 
     *  @property partySize
     *  @type Integer
     */
    prototype.partySize = null;
    /**
     *  Schema.org/pickupLocation
     *  Where a taxi will pick up a passenger or a rental car can be picked up.
     * 
     *  @property pickupLocation
     *  @type Place
     */
    prototype.pickupLocation = null;
}, {pickupLocation: "Place", provider: "Person", programMembershipUsed: "ProgramMembership", reservationStatus: "ReservationStatusType", underName: "Organization", bookingAgent: "Organization", reservationFor: "Thing", broker: "Person", reservedTicket: "Ticket", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Car
 *  A car is a wheeled, self-powered motor vehicle used for transportation.
 * 
 *  @author schema.org
 *  @class Car
 *  @module org.schema
 *  @extends Vehicle
 */
var Car = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Vehicle.call(this);
    this.context = "http://schema.org/";
    this.type = "Car";
};
Car = stjs.extend(Car, Vehicle, [], null, {mileageFromOdometer: "QuantitativeValue", cargoVolume: "QuantitativeValue", steeringPosition: "SteeringPositionValue", vehicleSeatingCapacity: "QuantitativeValue", vehicleEngine: "EngineSpecification", fuelConsumption: "QuantitativeValue", numberOfPreviousOwners: "QuantitativeValue", fuelEfficiency: "QuantitativeValue", numberOfAxles: "QuantitativeValue", driveWheelConfiguration: "DriveWheelConfigurationValue", manufacturer: "Organization", audience: "Audience", height: "Distance", reviews: "Review", aggregateRating: "AggregateRating", isConsumableFor: "Product", offers: "Offer", width: "Distance", additionalProperty: "PropertyValue", isAccessoryOrSparePartFor: "Product", logo: "ImageObject", weight: "QuantitativeValue", depth: "Distance", isSimilarTo: "Product", isRelatedTo: "Product", review: "Review", itemCondition: "OfferItemCondition", brand: "Organization", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SpreadsheetDigitalDocument
 *  A spreadsheet file.
 * 
 *  @author schema.org
 *  @class SpreadsheetDigitalDocument
 *  @module org.schema
 *  @extends DigitalDocument
 */
var SpreadsheetDigitalDocument = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    DigitalDocument.call(this);
    this.context = "http://schema.org/";
    this.type = "SpreadsheetDigitalDocument";
};
SpreadsheetDigitalDocument = stjs.extend(SpreadsheetDigitalDocument, DigitalDocument, [], null, {hasDigitalDocumentPermission: "DigitalDocumentPermission", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/NoteDigitalDocument
 *  A file containing a note, primarily for the author.
 * 
 *  @author schema.org
 *  @class NoteDigitalDocument
 *  @module org.schema
 *  @extends DigitalDocument
 */
var NoteDigitalDocument = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    DigitalDocument.call(this);
    this.context = "http://schema.org/";
    this.type = "NoteDigitalDocument";
};
NoteDigitalDocument = stjs.extend(NoteDigitalDocument, DigitalDocument, [], null, {hasDigitalDocumentPermission: "DigitalDocumentPermission", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/PresentationDigitalDocument
 *  A file containing slides or used for a presentation.
 * 
 *  @author schema.org
 *  @class PresentationDigitalDocument
 *  @module org.schema
 *  @extends DigitalDocument
 */
var PresentationDigitalDocument = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    DigitalDocument.call(this);
    this.context = "http://schema.org/";
    this.type = "PresentationDigitalDocument";
};
PresentationDigitalDocument = stjs.extend(PresentationDigitalDocument, DigitalDocument, [], null, {hasDigitalDocumentPermission: "DigitalDocumentPermission", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TextDigitalDocument
 *  A file composed primarily of text.
 * 
 *  @author schema.org
 *  @class TextDigitalDocument
 *  @module org.schema
 *  @extends DigitalDocument
 */
var TextDigitalDocument = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    DigitalDocument.call(this);
    this.context = "http://schema.org/";
    this.type = "TextDigitalDocument";
};
TextDigitalDocument = stjs.extend(TextDigitalDocument, DigitalDocument, [], null, {hasDigitalDocumentPermission: "DigitalDocumentPermission", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MovieClip
 *  A short segment/part of a movie.
 * 
 *  @author schema.org
 *  @class MovieClip
 *  @module org.schema
 *  @extends Clip
 */
var MovieClip = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Clip.call(this);
    this.context = "http://schema.org/";
    this.type = "MovieClip";
};
MovieClip = stjs.extend(MovieClip, Clip, [], null, {actor: "Person", partOfSeries: "CreativeWorkSeries", partOfEpisode: "Episode", partOfSeason: "CreativeWorkSeason", musicBy: "Person", directors: "Person", director: "Person", actors: "Person", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/VideoGameClip
 *  A short segment/part of a video game.
 * 
 *  @author schema.org
 *  @class VideoGameClip
 *  @module org.schema
 *  @extends Clip
 */
var VideoGameClip = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Clip.call(this);
    this.context = "http://schema.org/";
    this.type = "VideoGameClip";
};
VideoGameClip = stjs.extend(VideoGameClip, Clip, [], null, {actor: "Person", partOfSeries: "CreativeWorkSeries", partOfEpisode: "Episode", partOfSeason: "CreativeWorkSeason", musicBy: "Person", directors: "Person", director: "Person", actors: "Person", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/RadioClip
 *  A short radio program or a segment/part of a radio program.
 * 
 *  @author schema.org
 *  @class RadioClip
 *  @module org.schema
 *  @extends Clip
 */
var RadioClip = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Clip.call(this);
    this.context = "http://schema.org/";
    this.type = "RadioClip";
};
RadioClip = stjs.extend(RadioClip, Clip, [], null, {actor: "Person", partOfSeries: "CreativeWorkSeries", partOfEpisode: "Episode", partOfSeason: "CreativeWorkSeason", musicBy: "Person", directors: "Person", director: "Person", actors: "Person", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TVClip
 *  A short TV program or a segment/part of a TV program.
 * 
 *  @author schema.org
 *  @class TVClip
 *  @module org.schema
 *  @extends Clip
 */
var TVClip = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Clip.call(this);
    this.context = "http://schema.org/";
    this.type = "TVClip";
};
TVClip = stjs.extend(TVClip, Clip, [], function(constructor, prototype) {
    /**
     *  Schema.org/partOfTVSeries
     *  The TV series to which this episode or season belongs.
     * 
     *  @property partOfTVSeries
     *  @type TVSeries
     */
    prototype.partOfTVSeries = null;
}, {partOfTVSeries: "TVSeries", actor: "Person", partOfSeries: "CreativeWorkSeries", partOfEpisode: "Episode", partOfSeason: "CreativeWorkSeason", musicBy: "Person", directors: "Person", director: "Person", actors: "Person", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/WebApplication
 *  Web applications.
 * 
 *  @author schema.org
 *  @class WebApplication
 *  @module org.schema
 *  @extends SoftwareApplication
 */
var WebApplication = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SoftwareApplication.call(this);
    this.context = "http://schema.org/";
    this.type = "WebApplication";
};
WebApplication = stjs.extend(WebApplication, SoftwareApplication, [], function(constructor, prototype) {
    /**
     *  Schema.org/browserRequirements
     *  Specifies browser requirements in human-readable text. For example, 'requires HTML5 support'.
     * 
     *  @property browserRequirements
     *  @type Text
     */
    prototype.browserRequirements = null;
}, {softwareHelp: "CreativeWork", softwareAddOn: "SoftwareApplication", supportingData: "DataFeed", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MobileApplication
 *  A software application designed specifically to work well on a mobile device such as a telephone.
 * 
 *  @author schema.org
 *  @class MobileApplication
 *  @module org.schema
 *  @extends SoftwareApplication
 */
var MobileApplication = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SoftwareApplication.call(this);
    this.context = "http://schema.org/";
    this.type = "MobileApplication";
};
MobileApplication = stjs.extend(MobileApplication, SoftwareApplication, [], function(constructor, prototype) {
    /**
     *  Schema.org/carrierRequirements
     *  Specifies specific carrier(s) requirements for the application (e.g. an application may only work on a specific carrier network).
     * 
     *  @property carrierRequirements
     *  @type Text
     */
    prototype.carrierRequirements = null;
}, {softwareHelp: "CreativeWork", softwareAddOn: "SoftwareApplication", supportingData: "DataFeed", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/VideoGame
 *  A video game is an electronic game that involves human interaction with a user interface to generate visual feedback on a video device.
 * 
 *  @author schema.org
 *  @class VideoGame
 *  @module org.schema
 *  @extends SoftwareApplication
 */
var VideoGame = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    SoftwareApplication.call(this);
    this.context = "http://schema.org/";
    this.type = "VideoGame";
};
VideoGame = stjs.extend(VideoGame, SoftwareApplication, [], function(constructor, prototype) {
    /**
     *  Schema.org/gamePlatform
     *  The electronic systems used to play <a href="http://en.wikipedia.org/wiki/Category:Video_game_platforms">video games</a>.
     * 
     *  @property gamePlatform
     *  @type Text
     */
    prototype.gamePlatform = null;
    /**
     *  Schema.org/gameServer
     *  The server on which  it is possible to play the game.
     * 
     *  @property gameServer
     *  @type GameServer
     */
    prototype.gameServer = null;
    /**
     *  Schema.org/actor
     *  An actor, e.g. in tv, radio, movie, video games etc., or in an event. Actors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property actor
     *  @type Person
     */
    prototype.actor = null;
    /**
     *  Schema.org/trailer
     *  The trailer of a movie or tv/radio series, season, episode, etc.
     * 
     *  @property trailer
     *  @type VideoObject
     */
    prototype.trailer = null;
    /**
     *  Schema.org/cheatCode
     *  Cheat codes to the game.
     * 
     *  @property cheatCode
     *  @type CreativeWork
     */
    prototype.cheatCode = null;
    /**
     *  Schema.org/gameTip
     *  Links to tips, tactics, etc.
     * 
     *  @property gameTip
     *  @type CreativeWork
     */
    prototype.gameTip = null;
    /**
     *  Schema.org/musicBy
     *  The composer of the soundtrack.
     * 
     *  @property musicBy
     *  @type Person
     */
    prototype.musicBy = null;
    /**
     *  Schema.org/directors
     *  A director of e.g. tv, radio, movie, video games etc. content. Directors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property directors
     *  @type Person
     */
    prototype.directors = null;
    /**
     *  Schema.org/playMode
     *  Indicates whether this game is multi-player, co-op or single-player.  The game can be marked as multi-player, co-op and single-player at the same time.
     * 
     *  @property playMode
     *  @type GamePlayMode
     */
    prototype.playMode = null;
    /**
     *  Schema.org/director
     *  A director of e.g. tv, radio, movie, video gaming etc. content, or of an event. Directors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property director
     *  @type Person
     */
    prototype.director = null;
    /**
     *  Schema.org/actors
     *  An actor, e.g. in tv, radio, movie, video games etc. Actors can be associated with individual items or with a series, episode, clip.
     * 
     *  @property actors
     *  @type Person
     */
    prototype.actors = null;
}, {gameServer: "GameServer", actor: "Person", trailer: "VideoObject", cheatCode: "CreativeWork", gameTip: "CreativeWork", musicBy: "Person", directors: "Person", playMode: "GamePlayMode", director: "Person", actors: "Person", softwareHelp: "CreativeWork", softwareAddOn: "SoftwareApplication", supportingData: "DataFeed", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/DataFeed
 *  A single feed providing structured information about one or more entities or topics.
 * 
 *  @author schema.org
 *  @class DataFeed
 *  @module org.schema
 *  @extends Dataset
 */
var DataFeed = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Dataset.call(this);
    this.context = "http://schema.org/";
    this.type = "DataFeed";
};
DataFeed = stjs.extend(DataFeed, Dataset, [], function(constructor, prototype) {
    /**
     *  Schema.org/dataFeedElement
     *  An item within in a data feed. Data feeds may have many elements.
     * 
     *  @property dataFeedElement
     *  @type Text
     */
    prototype.dataFeedElement = null;
}, {catalog: "DataCatalog", includedInDataCatalog: "DataCatalog", spatial: "Place", includedDataCatalog: "DataCatalog", distribution: "DataDownload", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/NewsArticle
 *  A news article.
 * 
 *  @author schema.org
 *  @class NewsArticle
 *  @module org.schema
 *  @extends Article
 */
var NewsArticle = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Article.call(this);
    this.context = "http://schema.org/";
    this.type = "NewsArticle";
};
NewsArticle = stjs.extend(NewsArticle, Article, [], function(constructor, prototype) {
    /**
     *  Schema.org/printColumn
     *  The number of the column in which the NewsArticle appears in the print edition.
     * 
     *  @property printColumn
     *  @type Text
     */
    prototype.printColumn = null;
    /**
     *  Schema.org/printEdition
     *  The edition of the print product in which the NewsArticle appears.
     * 
     *  @property printEdition
     *  @type Text
     */
    prototype.printEdition = null;
    /**
     *  Schema.org/printSection
     *  If this NewsArticle appears in print, this field indicates the print section in which the article appeared.
     * 
     *  @property printSection
     *  @type Text
     */
    prototype.printSection = null;
    /**
     *  Schema.org/printPage
     *  If this NewsArticle appears in print, this field indicates the name of the page on which the article is found. Please note that this field is intended for the exact page name (e.g. A5, B18).
     * 
     *  @property printPage
     *  @type Text
     */
    prototype.printPage = null;
    /**
     *  Schema.org/dateline
     *  The location where the NewsArticle was produced.
     * 
     *  @property dateline
     *  @type Text
     */
    prototype.dateline = null;
}, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/TechArticle
 *  A technical article - Example: How-to (task) topics, step-by-step, procedural troubleshooting, specifications, etc.
 * 
 *  @author schema.org
 *  @class TechArticle
 *  @module org.schema
 *  @extends Article
 */
var TechArticle = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Article.call(this);
    this.context = "http://schema.org/";
    this.type = "TechArticle";
};
TechArticle = stjs.extend(TechArticle, Article, [], function(constructor, prototype) {
    /**
     *  Schema.org/dependencies
     *  Prerequisites needed to fulfill steps in article.
     * 
     *  @property dependencies
     *  @type Text
     */
    prototype.dependencies = null;
    /**
     *  Schema.org/proficiencyLevel
     *  Proficiency needed for this content; expected values: 'Beginner', 'Expert'.
     * 
     *  @property proficiencyLevel
     *  @type Text
     */
    prototype.proficiencyLevel = null;
}, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SocialMediaPosting
 *  A post to a social media platform, including blog posts, tweets, Facebook posts, etc.
 * 
 *  @author schema.org
 *  @class SocialMediaPosting
 *  @module org.schema
 *  @extends Article
 */
var SocialMediaPosting = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Article.call(this);
    this.context = "http://schema.org/";
    this.type = "SocialMediaPosting";
};
SocialMediaPosting = stjs.extend(SocialMediaPosting, Article, [], function(constructor, prototype) {
    /**
     *  Schema.org/sharedContent
     *  A CreativeWork such as an image, video, or audio clip shared as part of this posting.
     * 
     *  @property sharedContent
     *  @type CreativeWork
     */
    prototype.sharedContent = null;
}, {sharedContent: "CreativeWork", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Report
 *  A Report generated by governmental or non-governmental organization.
 * 
 *  @author schema.org
 *  @class Report
 *  @module org.schema
 *  @extends Article
 */
var Report = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Article.call(this);
    this.context = "http://schema.org/";
    this.type = "Report";
};
Report = stjs.extend(Report, Article, [], function(constructor, prototype) {
    /**
     *  Schema.org/reportNumber
     *  The number or other unique designator assigned to a Report by the publishing organization.
     * 
     *  @property reportNumber
     *  @type Text
     */
    prototype.reportNumber = null;
}, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ScholarlyArticle
 *  A scholarly article.
 * 
 *  @author schema.org
 *  @class ScholarlyArticle
 *  @module org.schema
 *  @extends Article
 */
var ScholarlyArticle = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Article.call(this);
    this.context = "http://schema.org/";
    this.type = "ScholarlyArticle";
};
ScholarlyArticle = stjs.extend(ScholarlyArticle, Article, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MusicRelease
 *  A MusicRelease is a specific release of a music album.
 * 
 *  @author schema.org
 *  @class MusicRelease
 *  @module org.schema
 *  @extends MusicPlaylist
 */
var MusicRelease = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    MusicPlaylist.call(this);
    this.context = "http://schema.org/";
    this.type = "MusicRelease";
};
MusicRelease = stjs.extend(MusicRelease, MusicPlaylist, [], function(constructor, prototype) {
    /**
     *  Schema.org/recordLabel
     *  The label that issued the release.
     * 
     *  @property recordLabel
     *  @type Organization
     */
    prototype.recordLabel = null;
    /**
     *  Schema.org/catalogNumber
     *  The catalog number for the release.
     * 
     *  @property catalogNumber
     *  @type Text
     */
    prototype.catalogNumber = null;
    /**
     *  Schema.org/creditedTo
     *  The group the release is credited to if different than the byArtist. For example, Red and Blue is credited to "Stefani Germanotta Band", but by Lady Gaga.
     * 
     *  @property creditedTo
     *  @type Organization
     */
    prototype.creditedTo = null;
    /**
     *  Schema.org/releaseOf
     *  The album this is a release of.
     * 
     *  @property releaseOf
     *  @type MusicAlbum
     */
    prototype.releaseOf = null;
    /**
     *  Schema.org/duration
     *  The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).
     * 
     *  @property duration
     *  @type Duration
     */
    prototype.duration = null;
    /**
     *  Schema.org/musicReleaseFormat
     *  Format of this release (the type of recording media used, ie. compact disc, digital media, LP, etc.).
     * 
     *  @property musicReleaseFormat
     *  @type MusicReleaseFormatType
     */
    prototype.musicReleaseFormat = null;
}, {recordLabel: "Organization", creditedTo: "Organization", releaseOf: "MusicAlbum", duration: "Duration", musicReleaseFormat: "MusicReleaseFormatType", track: "MusicRecording", tracks: "MusicRecording", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/MusicAlbum
 *  A collection of music tracks.
 * 
 *  @author schema.org
 *  @class MusicAlbum
 *  @module org.schema
 *  @extends MusicPlaylist
 */
var MusicAlbum = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    MusicPlaylist.call(this);
    this.context = "http://schema.org/";
    this.type = "MusicAlbum";
};
MusicAlbum = stjs.extend(MusicAlbum, MusicPlaylist, [], function(constructor, prototype) {
    /**
     *  Schema.org/albumProductionType
     *  Classification of the album by it's type of content: soundtrack, live album, studio album, etc.
     * 
     *  @property albumProductionType
     *  @type MusicAlbumProductionType
     */
    prototype.albumProductionType = null;
    /**
     *  Schema.org/albumReleaseType
     *  The kind of release which this album is: single, EP or album.
     * 
     *  @property albumReleaseType
     *  @type MusicAlbumReleaseType
     */
    prototype.albumReleaseType = null;
    /**
     *  Schema.org/byArtist
     *  The artist that performed this album or recording.
     * 
     *  @property byArtist
     *  @type MusicGroup
     */
    prototype.byArtist = null;
    /**
     *  Schema.org/albumRelease
     *  A release of this album.
     * 
     *  @property albumRelease
     *  @type MusicRelease
     */
    prototype.albumRelease = null;
}, {albumProductionType: "MusicAlbumProductionType", albumReleaseType: "MusicAlbumReleaseType", byArtist: "MusicGroup", albumRelease: "MusicRelease", track: "MusicRecording", tracks: "MusicRecording", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Table
 *  A table on a Web page.
 * 
 *  @author schema.org
 *  @class Table
 *  @module org.schema
 *  @extends WebPageElement
 */
var Table = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    WebPageElement.call(this);
    this.context = "http://schema.org/";
    this.type = "Table";
};
Table = stjs.extend(Table, WebPageElement, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/WPSideBar
 *  A sidebar section of the page.
 * 
 *  @author schema.org
 *  @class WPSideBar
 *  @module org.schema
 *  @extends WebPageElement
 */
var WPSideBar = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    WebPageElement.call(this);
    this.context = "http://schema.org/";
    this.type = "WPSideBar";
};
WPSideBar = stjs.extend(WPSideBar, WebPageElement, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/WPAdBlock
 *  An advertising section of the page.
 * 
 *  @author schema.org
 *  @class WPAdBlock
 *  @module org.schema
 *  @extends WebPageElement
 */
var WPAdBlock = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    WebPageElement.call(this);
    this.context = "http://schema.org/";
    this.type = "WPAdBlock";
};
WPAdBlock = stjs.extend(WPAdBlock, WebPageElement, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/WPHeader
 *  The header section of the page.
 * 
 *  @author schema.org
 *  @class WPHeader
 *  @module org.schema
 *  @extends WebPageElement
 */
var WPHeader = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    WebPageElement.call(this);
    this.context = "http://schema.org/";
    this.type = "WPHeader";
};
WPHeader = stjs.extend(WPHeader, WebPageElement, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/SiteNavigationElement
 *  A navigation element of the page.
 * 
 *  @author schema.org
 *  @class SiteNavigationElement
 *  @module org.schema
 *  @extends WebPageElement
 */
var SiteNavigationElement = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    WebPageElement.call(this);
    this.context = "http://schema.org/";
    this.type = "SiteNavigationElement";
};
SiteNavigationElement = stjs.extend(SiteNavigationElement, WebPageElement, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/WPFooter
 *  The footer section of the page.
 * 
 *  @author schema.org
 *  @class WPFooter
 *  @module org.schema
 *  @extends WebPageElement
 */
var WPFooter = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    WebPageElement.call(this);
    this.context = "http://schema.org/";
    this.type = "WPFooter";
};
WPFooter = stjs.extend(WPFooter, WebPageElement, [], null, {about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/Answer
 *  An answer offered to a question; perhaps correct, perhaps opinionated or wrong.
 * 
 *  @author schema.org
 *  @class Answer
 *  @module org.schema
 *  @extends Comment
 */
var Answer = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Comment.call(this);
    this.context = "http://schema.org/";
    this.type = "Answer";
};
Answer = stjs.extend(Answer, Comment, [], null, {parentItem: "Question", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/EmailMessage
 *  An email message.
 * 
 *  @author schema.org
 *  @class EmailMessage
 *  @module org.schema
 *  @extends Message
 */
var EmailMessage = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Message.call(this);
    this.context = "http://schema.org/";
    this.type = "EmailMessage";
};
EmailMessage = stjs.extend(EmailMessage, Message, [], null, {recipient: "Organization", messageAttachment: "CreativeWork", sender: "Audience", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/ClaimReview
 *  A fact-checking review of claims made (or reported) in some creative work (referenced via itemReviewed).
 * 
 *  @author schema.org
 *  @class ClaimReview
 *  @module org.schema
 *  @extends Review
 */
var ClaimReview = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Review.call(this);
    this.context = "http://schema.org/";
    this.type = "ClaimReview";
};
ClaimReview = stjs.extend(ClaimReview, Review, [], function(constructor, prototype) {
    /**
     *  Schema.org/claimReviewed
     *  A short summary of the specific claims reviewed in a ClaimReview.
     * 
     *  @property claimReviewed
     *  @type Text
     */
    prototype.claimReviewed = null;
}, {reviewRating: "Rating", itemReviewed: "Thing", about: "Thing", educationalAlignment: "AlignmentObject", associatedMedia: "MediaObject", funder: "Person", audio: "AudioObject", workExample: "CreativeWork", provider: "Person", encoding: "MediaObject", character: "Person", audience: "Audience", sourceOrganization: "Organization", isPartOf: "CreativeWork", video: "VideoObject", publication: "PublicationEvent", contributor: "Organization", reviews: "Review", hasPart: "CreativeWork", releasedEvent: "PublicationEvent", contentLocation: "Place", aggregateRating: "AggregateRating", locationCreated: "Place", accountablePerson: "Person", spatialCoverage: "Place", offers: "Offer", editor: "Person", copyrightHolder: "Person", recordedAt: "SchemaEvent", publisher: "Person", interactionStatistic: "InteractionCounter", exampleOfWork: "CreativeWork", mainEntity: "Thing", author: "Person", timeRequired: "Duration", translator: "Person", comment: "Comment", inLanguage: "Language", review: "Review", license: "CreativeWork", encodings: "MediaObject", isBasedOn: "Product", creator: "Person", sponsor: "Organization", producer: "Person", mentions: "Thing", identifier: "Object", image: "Object", potentialAction: "Action", mainEntityOfPage: "Object", owner: {name: "Array", arguments: [null]}, signature: {name: "Array", arguments: [null]}, reader: {name: "Array", arguments: [null]}, atProperties: {name: "Array", arguments: [null]}}, {});
/**
 *  Schema.org/RadioEpisode
 *  A radio episode which can be part of a series or season.
 * 
 *  @author schema.org
 *  @class RadioEpisode
 *  @module org.schema
 *  @extends Episode
 */
var RadioEpisode = /**
 *  Constructor, automatically sets @context and @type.
 * 
 *  @constructor
 */
function() {
    Episode.call(this);
    this.context = "http://schema.org/";
    this.type = "RadioEpisode";
};
RadioEpisode = stjs.extend(RadioEpisode, Episode, [], null, {actor: "Person", partOfSeries: "CreativeWorkSeries&quo