{
    "id": "https://schema.org.uk/schemas/beauty-salon/1.0",
    "version": "1.0",
    "name": "Beauty Salon Schema",
    "description": "The Beauty Salon Schema organises salon identity, contact, location, opening hours, treatments, facilities and client information into a consistent format, using Schema.org vocabulary where applicable.",
    "sections": [
        {
            "name": "Identity",
            "key": "identity",
            "attributes": [
                {
                    "name": "beautysalon.id",
                    "label": "Identifier",
                    "description": "The permanent unique identifier already assigned to the salon. JSON-LD states the same value as @id. The identifier is not calculated from the name, telephone, or address.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": true,
                    "schema_org": "@id"
                },
                {
                    "name": "beautysalon.title",
                    "label": "Title",
                    "description": "The name of the salon.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": true,
                    "schema_org": "name"
                },
                {
                    "name": "beautysalon.description",
                    "label": "Description",
                    "description": "A text description of the salon.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "description"
                }
            ]
        },
        {
            "name": "Incorporation details",
            "key": "company",
            "attributes": [
                {
                    "name": "beautysalon.company.name",
                    "label": "Company name",
                    "description": "The registered company name, when the business is registered at Companies House and states that name. A missing value stays unknown. This is not the trading name. JSON-LD uses legalName.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "legalName",
                    "component": "https://schema.org.uk/schemas/components/company"
                },
                {
                    "name": "beautysalon.company.number",
                    "label": "Company number",
                    "description": "The company number, when the business is registered at Companies House and states that number. A missing value stays unknown. This is not a VAT number. When a number is stated, JSON-LD uses a PropertyValue named companyNumber.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "additionalProperty",
                    "component": "https://schema.org.uk/schemas/components/company"
                },
                {
                    "name": "beautysalon.company.incorporated_on",
                    "label": "Incorporation date",
                    "description": "The incorporation date, when the business is registered at Companies House and states that date. A missing date stays unknown. JSON-LD uses foundingDate for that stated date.",
                    "data_type": "date",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "foundingDate",
                    "component": "https://schema.org.uk/schemas/components/company"
                },
                {
                    "name": "beautysalon.company.vat",
                    "label": "VAT number",
                    "description": "The VAT number, when the business is registered for VAT and states that number. A missing value stays unknown. This is not the company number. JSON-LD uses vatID.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "vatID",
                    "component": "https://schema.org.uk/schemas/components/company"
                }
            ]
        },
        {
            "name": "Contact",
            "key": "contact",
            "attributes": [
                {
                    "name": "beautysalon.contact.phone",
                    "label": "Phone",
                    "description": "The telephone number of the salon.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "telephone",
                    "component": "https://schema.org.uk/schemas/components/contact"
                },
                {
                    "name": "beautysalon.contact.url",
                    "label": "Url",
                    "description": "The website address of the salon.",
                    "data_type": "url",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "url",
                    "component": "https://schema.org.uk/schemas/components/contact"
                },
                {
                    "name": "beautysalon.contact.email",
                    "label": "Email",
                    "description": "An email address for the salon, when one is stated. Leave it empty when none is known.",
                    "data_type": "email",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "email",
                    "component": "https://schema.org.uk/schemas/components/contact"
                }
            ]
        },
        {
            "name": "Location and coordinates",
            "key": "location_and_coordinates",
            "attributes": [
                {
                    "name": "beautysalon.location.address",
                    "label": "Address",
                    "description": "The postal address of the salon. The original address line stays intact.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "address"
                },
                {
                    "name": "beautysalon.location.latitude",
                    "label": "Latitude",
                    "description": "The WGS84 latitude of the salon.",
                    "data_type": "number",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "latitude"
                },
                {
                    "name": "beautysalon.location.longitude",
                    "label": "Longitude",
                    "description": "The WGS84 longitude of the salon. A coordinate pair is required before JSON-LD includes GeoCoordinates.",
                    "data_type": "number",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "longitude"
                },
                {
                    "name": "beautysalon.location.postcode",
                    "label": "Postcode",
                    "description": "The UK postcode when one postcode is present in the postal address.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "postalCode",
                    "component": "https://schema.org.uk/schemas/components/address"
                },
                {
                    "name": "beautysalon.location.street",
                    "label": "Street",
                    "description": "The street line when the postal address separates it from the town. A borough is not the street.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "streetAddress",
                    "component": "https://schema.org.uk/schemas/components/address"
                },
                {
                    "name": "beautysalon.location.locality",
                    "label": "Locality",
                    "description": "The town or city when the postal address states it as its own part. A borough is not the locality.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "addressLocality",
                    "component": "https://schema.org.uk/schemas/components/address"
                },
                {
                    "name": "beautysalon.location.region",
                    "label": "Region",
                    "description": "The county or region when the postal address states it as its own part. A media-market code is not a region and is left empty.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "addressRegion",
                    "component": "https://schema.org.uk/schemas/components/address"
                },
                {
                    "name": "beautysalon.location.country",
                    "label": "Country",
                    "description": "The country when the address states it. A two-letter country code is recorded as the country name. Leave it empty when the country is not stated.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "addressCountry",
                    "component": "https://schema.org.uk/schemas/components/address"
                }
            ]
        },
        {
            "name": "Opening hours",
            "key": "opening_hours",
            "attributes": [
                {
                    "name": "beautysalon.hours.opening",
                    "label": "Opening hours",
                    "description": "The regular opening hours when a weekly timetable states each open day and its opening and closing times. A current open or closed status is not opening hours. Busy periods are not opening hours. A day with no stated times is left empty.",
                    "data_type": "object",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "openingHoursSpecification"
                }
            ]
        },
        {
            "name": "Images",
            "key": "images",
            "attributes": [
                {
                    "name": "beautysalon.image.logo",
                    "label": "Logo",
                    "description": "The address of the salon logo, when one is stated. A missing address is omitted.",
                    "data_type": "url",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "logo"
                },
                {
                    "name": "beautysalon.image.main",
                    "label": "Main image",
                    "description": "The address of the main image of the salon, when one is stated. A count of photographs is not an image. A missing address is omitted.",
                    "data_type": "url",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "image",
                    "component": "https://schema.org.uk/schemas/components/image"
                }
            ]
        },
        {
            "name": "Reputation",
            "key": "review_statistics",
            "attributes": [
                {
                    "name": "beautysalon.review.rating",
                    "label": "Review rating",
                    "description": "A review score from one provider. It is not a qualification or an award. A scale is recorded only when that provider states it. The score stays in the native record and is not copied into the core business JSON-LD.",
                    "data_type": "number",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "ratingValue",
                    "component": "https://schema.org.uk/schemas/components/reputation"
                },
                {
                    "name": "beautysalon.review.count",
                    "label": "Review count",
                    "description": "The number of reviews accompanying a review rating from the same provider. It is not calculated from another provider.",
                    "data_type": "integer",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "reviewCount",
                    "component": "https://schema.org.uk/schemas/components/reputation"
                },
                {
                    "name": "beautysalon.review.rating_count",
                    "label": "Rating count",
                    "description": "The number of ratings when the provider states it separately from the number of reviews. It is not calculated from the distribution.",
                    "data_type": "integer",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "ratingCount",
                    "component": "https://schema.org.uk/schemas/components/reputation"
                },
                {
                    "name": "beautysalon.review.distribution",
                    "label": "Rating distribution",
                    "description": "Numbers recorded against scores 1 to 5. They are not the review count. Schema.org has no single property for the five counts, so this stays unmapped.",
                    "data_type": "object",
                    "scope": "salon",
                    "required": false,
                    "component": "https://schema.org.uk/schemas/components/reputation"
                },
                {
                    "name": "beautysalon.review.scale",
                    "label": "Rating scale",
                    "description": "The lowest and highest points of a review scale, when the scale is stated. Schema.org records those points as separate properties, so this attribute is not given one of them.",
                    "data_type": "object",
                    "scope": "salon",
                    "required": false,
                    "component": "https://schema.org.uk/schemas/components/reputation"
                },
                {
                    "name": "beautysalon.review.provider",
                    "label": "Review provider",
                    "description": "The organisation that published these figures. Figures from another provider are a separate observation and are not averaged together.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": false,
                    "component": "https://schema.org.uk/schemas/components/reputation"
                },
                {
                    "name": "beautysalon.review.observed_on",
                    "label": "Observation date",
                    "description": "The date on which these figures were observed, when that date is stated.",
                    "data_type": "date",
                    "scope": "salon",
                    "required": false,
                    "component": "https://schema.org.uk/schemas/components/reputation"
                }
            ]
        },
        {
            "name": "Price",
            "key": "price",
            "attributes": [
                {
                    "name": "beautysalon.price_range",
                    "label": "Price level",
                    "description": "A price indication using £, ££, £££, or ££££. Leave it empty when none is stated. This is not a treatment price.",
                    "data_type": "text",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "priceRange"
                }
            ]
        },
        {
            "name": "Treatments",
            "key": "services",
            "attributes": [
                {
                    "name": "beautysalon.service.facial",
                    "label": "Facials",
                    "description": "Whether the salon offers facials. Advanced skin treatments are a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.manicure",
                    "label": "Manicure",
                    "description": "Whether the salon offers a manicure or general nail care. Gel nails, BIAB, and nail art are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.massage",
                    "label": "Massage",
                    "description": "Whether the salon offers massage, including Swedish, aromatherapy, sports, and head, back, or foot massage. Hot stone, deep tissue, pregnancy massage, Indian head massage, and reflexology are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.eyebrows",
                    "label": "Eyebrow shaping, waxing and threading",
                    "description": "Whether the salon offers eyebrow shaping, waxing, or threading. Tinting, brow lamination, and microblading are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.pedicure",
                    "label": "Pedicure",
                    "description": "Whether the salon offers a pedicure. A manicure is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.waxing",
                    "label": "Waxing",
                    "description": "Whether the salon offers body or face waxing. Laser hair removal and eyebrow shaping are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.gel_nails",
                    "label": "Gel nails and polish",
                    "description": "Whether the salon offers gel nails or gel polish, including removal and builder gel. A manicure, BIAB, and nail art are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.eyebrow_tint",
                    "label": "Eyebrow tinting",
                    "description": "Whether the salon offers eyebrow tinting. Shaping, brow lamination, and microblading are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.advanced_facials",
                    "label": "Advanced skin treatments (hydrafacial, peels, microneedling, dermaplaning)",
                    "description": "Whether the salon offers advanced skin treatments, including hydrafacial, chemical peels, microneedling, dermaplaning, and microdermabrasion. A general facial is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.lash_extensions",
                    "label": "Eyelash extensions",
                    "description": "Whether the salon offers eyelash extensions. A lash lift and an eyelash tint are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.lash_lift",
                    "label": "Lash lift",
                    "description": "Whether the salon offers a lash lift. Eyelash extensions and an eyelash tint are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.spray_tan",
                    "label": "Spray tan",
                    "description": "Whether the salon offers a spray tan. Sunbed hire is recorded with this service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.aesthetics",
                    "label": "Aesthetics treatments",
                    "description": "Whether the salon offers aesthetics treatments such as skin boosters. Botox and dermal filler are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.microblading",
                    "label": "Microblading and semi-permanent makeup",
                    "description": "Whether the salon offers microblading or semi-permanent makeup, including powder brows. Eyebrow tinting and brow lamination are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.hot_stone",
                    "label": "Hot stone massage",
                    "description": "Whether the salon offers hot stone massage. A general massage is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.eyelash_tint",
                    "label": "Eyelash tint",
                    "description": "Whether the salon offers an eyelash tint. Eyelash extensions and a lash lift are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.deep_tissue",
                    "label": "Deep tissue massage",
                    "description": "Whether the salon offers deep tissue massage. A general massage is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.hair",
                    "label": "Hair services (cut, colour, styling)",
                    "description": "Whether the salon offers hair cutting, colouring, or styling. These stay one service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.ear_piercing",
                    "label": "Ear piercing",
                    "description": "Whether the salon offers ear piercing. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.biab",
                    "label": "BIAB nail treatment",
                    "description": "Whether the salon offers a BIAB nail treatment. Gel polish and a general manicure are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.brow_lamination",
                    "label": "Brow lamination",
                    "description": "Whether the salon offers brow lamination. Eyebrow shaping, tinting, and microblading are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.nail_art",
                    "label": "Nail art",
                    "description": "Whether the salon offers nail art. A manicure and gel polish are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.laser",
                    "label": "Laser hair removal and electrolysis",
                    "description": "Whether the salon offers laser hair removal or electrolysis. Waxing is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.pregnancy_massage",
                    "label": "Pregnancy massage",
                    "description": "Whether the salon offers pregnancy massage. A general massage is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.indian_head",
                    "label": "Indian head massage",
                    "description": "Whether the salon offers Indian head massage. A general massage is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.reflexology",
                    "label": "Reflexology",
                    "description": "Whether the salon offers reflexology. A general foot massage is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.dermal_filler",
                    "label": "Dermal filler",
                    "description": "Whether the salon offers dermal filler. Botox and other aesthetics treatments are separate services. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.botox",
                    "label": "Botox and anti-wrinkle injections",
                    "description": "Whether the salon offers Botox or anti-wrinkle injections. Dermal filler is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.makeup",
                    "label": "Makeup application",
                    "description": "Whether the salon offers makeup application. Microblading is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                },
                {
                    "name": "beautysalon.service.mobile",
                    "label": "Mobile treatments at home",
                    "description": "Whether the salon offers treatments at a client's home. A treatment at the salon is a separate service. JSON-LD includes a Service of this name in hasOfferCatalog only when the value is stated as offered. An explicit no and an unknown value add nothing.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "Service"
                }
            ]
        },
        {
            "name": "Amenities",
            "key": "amenities",
            "attributes": [
                {
                    "name": "beautysalon.amenity.parking",
                    "label": "Parking available",
                    "description": "Whether parking is available. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "amenityFeature"
                },
                {
                    "name": "beautysalon.amenity.wheelchair_access",
                    "label": "Wheelchair access",
                    "description": "Whether the salon has wheelchair access. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "amenityFeature"
                },
                {
                    "name": "beautysalon.amenity.refreshments",
                    "label": "Refreshments offered",
                    "description": "Whether the salon offers refreshments. A missing value is unknown, not absent.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "amenityFeature"
                }
            ]
        },
        {
            "name": "Salon details",
            "key": "salon",
            "attributes": [
                {
                    "name": "beautysalon.salon.gift_vouchers",
                    "label": "Gift vouchers",
                    "description": "Whether the salon offers gift vouchers. This is not a treatment and not a price. A missing value is unknown, not absent. When a value is stated, JSON-LD uses a PropertyValue named giftVouchers.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "additionalProperty"
                },
                {
                    "name": "beautysalon.salon.online_booking",
                    "label": "Online booking",
                    "description": "Whether the salon offers online booking. This is not an offer and not a price. A missing value is unknown, not absent. When a value is stated, JSON-LD uses a PropertyValue named onlineBooking.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "additionalProperty"
                },
                {
                    "name": "beautysalon.salon.walk_in",
                    "label": "Walk-ins welcome",
                    "description": "Whether the salon welcomes walk-in clients. Opening hours are a separate field. A missing value is unknown, not absent. When a value is stated, JSON-LD uses a PropertyValue named walkIn.",
                    "data_type": "boolean",
                    "scope": "salon",
                    "required": false,
                    "schema_org": "additionalProperty"
                }
            ]
        }
    ],
    "components": [
        {
            "id": "https://schema.org.uk/schemas/components/address",
            "name": "Address",
            "description": "A postal address other category schemas can reuse. The original address line stays intact. Missing parts are left empty.",
            "fields": [
                "address",
                "postcode",
                "street",
                "locality",
                "region",
                "country"
            ]
        },
        {
            "id": "https://schema.org.uk/schemas/components/contact",
            "name": "Contact",
            "description": "Telephone, website, and email other category schemas can reuse. Each value is optional. A missing value stays empty.",
            "fields": [
                "phone",
                "url",
                "email"
            ]
        },
        {
            "id": "https://schema.org.uk/schemas/components/company",
            "name": "Incorporation details",
            "description": "Registered company name, company number, and incorporation date when a business is registered at Companies House, and a VAT number when it is registered for VAT. Each value is included only when it is stated. A missing value stays unknown. Other category schemas reuse these fields.",
            "fields": [
                "name",
                "number",
                "incorporated_on",
                "vat"
            ]
        },
        {
            "id": "https://schema.org.uk/schemas/components/image",
            "name": "Image",
            "description": "An image, or one image in an ordered collection. Caption, attribution, and a rights note are optional. A missing note stays empty.",
            "fields": [
                "position",
                "url",
                "caption",
                "attribution",
                "rights"
            ]
        },
        {
            "id": "https://schema.org.uk/schemas/components/reputation",
            "name": "Reputation",
            "description": "Optional figures from one rating provider. A rating, a rating count, a review count, a scale, a distribution, and the date of the observation are recorded only when that provider states them. Themes are included only when a category records them. Figures from different providers are not combined. These figures are not copied into the core business JSON-LD.",
            "fields": [
                "provider",
                "rating",
                "rating_count",
                "count",
                "scale",
                "distribution",
                "observed_on",
                "themes"
            ]
        },
        {
            "id": "https://schema.org.uk/schemas/components/review-statistics",
            "name": "Review statistics",
            "alias_of": "https://schema.org.uk/schemas/components/reputation",
            "description": "Previous name of the Reputation component. New definitions use the Reputation component.",
            "fields": [
                "provider",
                "rating",
                "rating_count",
                "count",
                "scale",
                "distribution",
                "observed_on",
                "themes"
            ]
        },
        {
            "id": "https://schema.org.uk/schemas/components/offers",
            "name": "Offers",
            "optional": true,
            "description": "A contract for a later priced offer. It is not part of a core business schema. A service, a treatment, or a free or paid facility is not an offer by itself. The contract can record the item offered, the seller, the price and its currency, availability, the start and end dates, and the conditions. Live prices and bookings are not included.",
            "fields": [
                "item",
                "seller",
                "price",
                "currency",
                "availability",
                "valid_from",
                "valid_through",
                "conditions"
            ]
        }
    ]
}
