SEO.JSONLD.GeneralContractor (SEO v0.3.0-rc.0)

View Source

A general contractor.

Helper for building a Schema.org GeneralContractor JSON-LD structure.

Summary

Types

t()

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "GeneralContractor", plus any camelCased field keys the caller provided (see build/1). "@context" is added at render time by SEO.JSONLD.meta/1 on the top-level node only.

Functions

Build a GeneralContractor JSON-LD map.

Types

attrs()

@type attrs() ::
  %{
    optional(:branch_of) => SEO.JSONLD.Organization.t() | map(),
    optional(:currencies_accepted) => String.t(),
    optional(:floor_level) => String.t(),
    optional(:opening_hours) => String.t(),
    optional(:payment_accepted) => String.t(),
    optional(:price_range) => String.t(),
    optional(:additional_property) => SEO.JSONLD.PropertyValue.t() | map(),
    optional(:address) => String.t() | SEO.JSONLD.PostalAddress.t() | map(),
    optional(:aggregate_rating) => SEO.JSONLD.AggregateRating.t() | map(),
    optional(:amenity_feature) =>
      SEO.JSONLD.LocationFeatureSpecification.t() | map(),
    optional(:branch_code) => String.t(),
    optional(:contained_in) => SEO.JSONLD.Place.t() | map(),
    optional(:contained_in_place) => SEO.JSONLD.Place.t() | map(),
    optional(:contains_place) => SEO.JSONLD.Place.t() | map(),
    optional(:event) => SEO.JSONLD.Event.t() | map(),
    optional(:events) => SEO.JSONLD.Event.t() | map(),
    optional(:fax_number) => String.t(),
    optional(:geo) =>
      SEO.JSONLD.GeoShape.t() | map() | SEO.JSONLD.GeoCoordinates.t(),
    optional(:geo_contains) =>
      SEO.JSONLD.Place.t() | map() | SEO.JSONLD.GeospatialGeometry.t(),
    optional(:geo_covered_by) =>
      SEO.JSONLD.GeospatialGeometry.t() | map() | SEO.JSONLD.Place.t(),
    optional(:geo_covers) =>
      SEO.JSONLD.GeospatialGeometry.t() | map() | SEO.JSONLD.Place.t(),
    optional(:geo_crosses) =>
      SEO.JSONLD.GeospatialGeometry.t() | map() | SEO.JSONLD.Place.t(),
    optional(:geo_disjoint) =>
      SEO.JSONLD.Place.t() | map() | SEO.JSONLD.GeospatialGeometry.t(),
    optional(:geo_equals) =>
      SEO.JSONLD.Place.t() | map() | SEO.JSONLD.GeospatialGeometry.t(),
    optional(:geo_intersects) =>
      SEO.JSONLD.Place.t() | map() | SEO.JSONLD.GeospatialGeometry.t(),
    optional(:geo_overlaps) =>
      SEO.JSONLD.GeospatialGeometry.t() | map() | SEO.JSONLD.Place.t(),
    optional(:geo_touches) =>
      SEO.JSONLD.Place.t() | map() | SEO.JSONLD.GeospatialGeometry.t(),
    optional(:geo_within) =>
      SEO.JSONLD.GeospatialGeometry.t() | map() | SEO.JSONLD.Place.t(),
    optional(:global_location_number) => String.t(),
    optional(:has_certification) => SEO.JSONLD.Certification.t() | map(),
    optional(:has_drive_through_service) => boolean(),
    optional(:has_gs1_digital_link) => URI.t() | String.t(),
    optional(:has_map) => URI.t() | String.t() | SEO.JSONLD.Map.t() | map(),
    optional(:is_accessible_for_free) => boolean(),
    optional(:isic_v4) => String.t(),
    optional(:keywords) =>
      SEO.JSONLD.DefinedTerm.t() | map() | String.t() | URI.t(),
    optional(:latitude) => String.t() | number(),
    optional(:logo) =>
      URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
    optional(:longitude) => String.t() | number(),
    optional(:map) => URI.t() | String.t(),
    optional(:maps) => URI.t() | String.t(),
    optional(:maximum_attendee_capacity) => integer(),
    optional(:opening_hours_specification) =>
      SEO.JSONLD.OpeningHoursSpecification.t() | map(),
    optional(:photo) =>
      SEO.JSONLD.Photograph.t() | map() | SEO.JSONLD.ImageObject.t(),
    optional(:photos) =>
      SEO.JSONLD.Photograph.t() | map() | SEO.JSONLD.ImageObject.t(),
    optional(:public_access) => boolean(),
    optional(:review) => SEO.JSONLD.Review.t() | map(),
    optional(:reviews) => SEO.JSONLD.Review.t() | map(),
    optional(:slogan) => String.t(),
    optional(:smoking_allowed) => boolean(),
    optional(:special_opening_hours_specification) =>
      SEO.JSONLD.OpeningHoursSpecification.t() | map(),
    optional(:telephone) => String.t(),
    optional(:tour_booking_page) => URI.t() | String.t(),
    optional(:accepted_payment_method) =>
      SEO.JSONLD.PaymentMethod.t()
      | map()
      | SEO.JSONLD.LoanOrCredit.t()
      | String.t(),
    optional(:actionable_feedback_policy) =>
      SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
    optional(:agent_interaction_statistic) =>
      SEO.JSONLD.InteractionCounter.t() | map(),
    optional(:alumni) => SEO.JSONLD.Person.t() | map(),
    optional(:area_served) =>
      SEO.JSONLD.GeoShape.t()
      | map()
      | SEO.JSONLD.AdministrativeArea.t()
      | SEO.JSONLD.Place.t()
      | String.t(),
    optional(:award) => String.t(),
    optional(:awards) => String.t(),
    optional(:brand) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Brand.t(),
    optional(:company_registration) => SEO.JSONLD.Certification.t() | map(),
    optional(:contact_point) => SEO.JSONLD.ContactPoint.t() | map(),
    optional(:contact_points) => SEO.JSONLD.ContactPoint.t() | map(),
    optional(:corrections_policy) =>
      URI.t() | String.t() | SEO.JSONLD.CreativeWork.t() | map(),
    optional(:department) => SEO.JSONLD.Organization.t() | map(),
    optional(:dissolution_date) => Date.t() | String.t(),
    optional(:diversity_policy) =>
      SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
    optional(:diversity_staffing_report) =>
      URI.t() | String.t() | SEO.JSONLD.Article.t() | map(),
    optional(:duns) => String.t(),
    optional(:email) => String.t(),
    optional(:employee) => SEO.JSONLD.Person.t() | map(),
    optional(:employees) => SEO.JSONLD.Person.t() | map(),
    optional(:ethics_policy) =>
      SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
    optional(:founder) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:founders) => SEO.JSONLD.Person.t() | map(),
    optional(:founding_date) => Date.t() | String.t(),
    optional(:founding_location) => SEO.JSONLD.Place.t() | map(),
    optional(:funder) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:funding) => SEO.JSONLD.Grant.t() | map(),
    optional(:has_credential) => SEO.JSONLD.Credential.t() | map(),
    optional(:has_member_program) => SEO.JSONLD.MemberProgram.t() | map(),
    optional(:has_merchant_return_policy) =>
      SEO.JSONLD.MerchantReturnPolicy.t() | map(),
    optional(:has_offer_catalog) => SEO.JSONLD.OfferCatalog.t() | map(),
    optional(:has_pos) => SEO.JSONLD.Place.t() | map(),
    optional(:has_shipping_service) => SEO.JSONLD.ShippingService.t() | map(),
    optional(:interaction_statistic) =>
      SEO.JSONLD.InteractionCounter.t() | map(),
    optional(:iso6523_code) => String.t(),
    optional(:knows_about) =>
      String.t() | URI.t() | SEO.JSONLD.Thing.t() | map(),
    optional(:knows_language) => String.t() | SEO.JSONLD.Language.t() | map(),
    optional(:legal_address) => SEO.JSONLD.PostalAddress.t() | map(),
    optional(:legal_name) => String.t(),
    optional(:legal_representative) => SEO.JSONLD.Person.t() | map(),
    optional(:lei_code) => String.t(),
    optional(:location) =>
      String.t()
      | SEO.JSONLD.PostalAddress.t()
      | map()
      | SEO.JSONLD.VirtualLocation.t()
      | SEO.JSONLD.Place.t(),
    optional(:makes_offer) => SEO.JSONLD.Offer.t() | map(),
    optional(:member) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:member_of) =>
      SEO.JSONLD.ProgramMembership.t()
      | map()
      | SEO.JSONLD.Organization.t()
      | SEO.JSONLD.MemberProgramTier.t(),
    optional(:members) =>
      SEO.JSONLD.Person.t() | map() | SEO.JSONLD.Organization.t(),
    optional(:naics) => String.t(),
    optional(:nonprofit_status) =>
      :charitable_incorporated_organization
      | :de_cooperative_charity
      | :de_foundation_charity
      | :de_joint_stock_company_charity
      | :de_limited_liability_charity
      | :de_not_registered_association_charity
      | :de_public_charity
      | :de_registered_association_charity
      | :it_cooperative_charity
      | :it_mutual_aid_charity
      | :it_social_company_charity
      | :it_social_promotion_charity
      | :it_sport_company_charity
      | :it_volunteer_association_charity
      | :limited_by_guarantee_charity
      | :nonprofit501a
      | :nonprofit501c1
      | :nonprofit501c10
      | :nonprofit501c11
      | :nonprofit501c12
      | :nonprofit501c13
      | :nonprofit501c14
      | :nonprofit501c15
      | :nonprofit501c16
      | :nonprofit501c17
      | :nonprofit501c18
      | :nonprofit501c19
      | :nonprofit501c2
      | :nonprofit501c20
      | :nonprofit501c21
      | :nonprofit501c22
      | :nonprofit501c23
      | :nonprofit501c24
      | :nonprofit501c25
      | :nonprofit501c26
      | :nonprofit501c27
      | :nonprofit501c28
      | :nonprofit501c3
      | :nonprofit501c4
      | :nonprofit501c5
      | :nonprofit501c6
      | :nonprofit501c7
      | :nonprofit501c8
      | :nonprofit501c9
      | :nonprofit501d
      | :nonprofit501e
      | :nonprofit501f
      | :nonprofit501k
      | :nonprofit501n
      | :nonprofit501q
      | :nonprofit527
      | :nonprofit_anbi
      | :nonprofit_sbbi
      | :uk_trust
      | :unincorporated_association_charity,
    optional(:number_of_employees) => SEO.JSONLD.QuantitativeValue.t() | map(),
    optional(:ownership_funding_info) =>
      SEO.JSONLD.AboutPage.t()
      | map()
      | SEO.JSONLD.CreativeWork.t()
      | String.t()
      | URI.t(),
    optional(:owns) => SEO.JSONLD.Thing.t() | map(),
    optional(:parent_organization) => SEO.JSONLD.Organization.t() | map(),
    optional(:publishing_principles) =>
      SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
    optional(:seeks) => SEO.JSONLD.Demand.t() | map(),
    optional(:service_area) =>
      SEO.JSONLD.GeoShape.t()
      | map()
      | SEO.JSONLD.AdministrativeArea.t()
      | SEO.JSONLD.Place.t(),
    optional(:skills) => String.t() | SEO.JSONLD.DefinedTerm.t() | map(),
    optional(:sponsor) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:sub_organization) => SEO.JSONLD.Organization.t() | map(),
    optional(:tax_id) => String.t(),
    optional(:unnamed_sources_policy) =>
      SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
    optional(:vat_id) => String.t(),
    optional(:additional_type) => String.t() | URI.t(),
    optional(:alternate_name) => String.t(),
    optional(:description) => SEO.JSONLD.TextObject.t() | map() | String.t(),
    optional(:disambiguating_description) => String.t(),
    optional(:identifier) =>
      String.t() | URI.t() | SEO.JSONLD.PropertyValue.t() | map(),
    optional(:image) =>
      URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
    optional(:main_entity_of_page) =>
      SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
    optional(:name) => String.t(),
    optional(:owner) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:potential_action) => SEO.JSONLD.Action.t() | map(),
    optional(:same_as) => URI.t() | String.t(),
    optional(:subject_of) =>
      SEO.JSONLD.Event.t() | map() | SEO.JSONLD.CreativeWork.t(),
    optional(:url) => URI.t() | String.t()
  }
  | [
      branch_of: SEO.JSONLD.Organization.t() | map(),
      currencies_accepted: String.t(),
      floor_level: String.t(),
      opening_hours: String.t(),
      payment_accepted: String.t(),
      price_range: String.t(),
      additional_property: SEO.JSONLD.PropertyValue.t() | map(),
      address: String.t() | SEO.JSONLD.PostalAddress.t() | map(),
      aggregate_rating: SEO.JSONLD.AggregateRating.t() | map(),
      amenity_feature: SEO.JSONLD.LocationFeatureSpecification.t() | map(),
      branch_code: String.t(),
      contained_in: SEO.JSONLD.Place.t() | map(),
      contained_in_place: SEO.JSONLD.Place.t() | map(),
      contains_place: SEO.JSONLD.Place.t() | map(),
      event: SEO.JSONLD.Event.t() | map(),
      events: SEO.JSONLD.Event.t() | map(),
      fax_number: String.t(),
      geo: SEO.JSONLD.GeoShape.t() | map() | SEO.JSONLD.GeoCoordinates.t(),
      geo_contains:
        SEO.JSONLD.Place.t() | map() | SEO.JSONLD.GeospatialGeometry.t(),
      geo_covered_by:
        SEO.JSONLD.GeospatialGeometry.t() | map() | SEO.JSONLD.Place.t(),
      geo_covers:
        SEO.JSONLD.GeospatialGeometry.t() | map() | SEO.JSONLD.Place.t(),
      geo_crosses:
        SEO.JSONLD.GeospatialGeometry.t() | map() | SEO.JSONLD.Place.t(),
      geo_disjoint:
        SEO.JSONLD.Place.t() | map() | SEO.JSONLD.GeospatialGeometry.t(),
      geo_equals:
        SEO.JSONLD.Place.t() | map() | SEO.JSONLD.GeospatialGeometry.t(),
      geo_intersects:
        SEO.JSONLD.Place.t() | map() | SEO.JSONLD.GeospatialGeometry.t(),
      geo_overlaps:
        SEO.JSONLD.GeospatialGeometry.t() | map() | SEO.JSONLD.Place.t(),
      geo_touches:
        SEO.JSONLD.Place.t() | map() | SEO.JSONLD.GeospatialGeometry.t(),
      geo_within:
        SEO.JSONLD.GeospatialGeometry.t() | map() | SEO.JSONLD.Place.t(),
      global_location_number: String.t(),
      has_certification: SEO.JSONLD.Certification.t() | map(),
      has_drive_through_service: boolean(),
      has_gs1_digital_link: URI.t() | String.t(),
      has_map: URI.t() | String.t() | SEO.JSONLD.Map.t() | map(),
      is_accessible_for_free: boolean(),
      isic_v4: String.t(),
      keywords: SEO.JSONLD.DefinedTerm.t() | map() | String.t() | URI.t(),
      latitude: String.t() | number(),
      logo: URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
      longitude: String.t() | number(),
      map: URI.t() | String.t(),
      maps: URI.t() | String.t(),
      maximum_attendee_capacity: integer(),
      opening_hours_specification:
        SEO.JSONLD.OpeningHoursSpecification.t() | map(),
      photo: SEO.JSONLD.Photograph.t() | map() | SEO.JSONLD.ImageObject.t(),
      photos: SEO.JSONLD.Photograph.t() | map() | SEO.JSONLD.ImageObject.t(),
      public_access: boolean(),
      review: SEO.JSONLD.Review.t() | map(),
      reviews: SEO.JSONLD.Review.t() | map(),
      slogan: String.t(),
      smoking_allowed: boolean(),
      special_opening_hours_specification:
        SEO.JSONLD.OpeningHoursSpecification.t() | map(),
      telephone: String.t(),
      tour_booking_page: URI.t() | String.t(),
      accepted_payment_method:
        SEO.JSONLD.PaymentMethod.t()
        | map()
        | SEO.JSONLD.LoanOrCredit.t()
        | String.t(),
      actionable_feedback_policy:
        SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
      agent_interaction_statistic: SEO.JSONLD.InteractionCounter.t() | map(),
      alumni: SEO.JSONLD.Person.t() | map(),
      area_served:
        SEO.JSONLD.GeoShape.t()
        | map()
        | SEO.JSONLD.AdministrativeArea.t()
        | SEO.JSONLD.Place.t()
        | String.t(),
      award: String.t(),
      awards: String.t(),
      brand: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Brand.t(),
      company_registration: SEO.JSONLD.Certification.t() | map(),
      contact_point: SEO.JSONLD.ContactPoint.t() | map(),
      contact_points: SEO.JSONLD.ContactPoint.t() | map(),
      corrections_policy:
        URI.t() | String.t() | SEO.JSONLD.CreativeWork.t() | map(),
      department: SEO.JSONLD.Organization.t() | map(),
      dissolution_date: Date.t() | String.t(),
      diversity_policy:
        SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
      diversity_staffing_report:
        URI.t() | String.t() | SEO.JSONLD.Article.t() | map(),
      duns: String.t(),
      email: String.t(),
      employee: SEO.JSONLD.Person.t() | map(),
      employees: SEO.JSONLD.Person.t() | map(),
      ethics_policy: SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
      founder: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      founders: SEO.JSONLD.Person.t() | map(),
      founding_date: Date.t() | String.t(),
      founding_location: SEO.JSONLD.Place.t() | map(),
      funder: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      funding: SEO.JSONLD.Grant.t() | map(),
      has_credential: SEO.JSONLD.Credential.t() | map(),
      has_member_program: SEO.JSONLD.MemberProgram.t() | map(),
      has_merchant_return_policy: SEO.JSONLD.MerchantReturnPolicy.t() | map(),
      has_offer_catalog: SEO.JSONLD.OfferCatalog.t() | map(),
      has_pos: SEO.JSONLD.Place.t() | map(),
      has_shipping_service: SEO.JSONLD.ShippingService.t() | map(),
      interaction_statistic: SEO.JSONLD.InteractionCounter.t() | map(),
      iso6523_code: String.t(),
      knows_about: String.t() | URI.t() | SEO.JSONLD.Thing.t() | map(),
      knows_language: String.t() | SEO.JSONLD.Language.t() | map(),
      legal_address: SEO.JSONLD.PostalAddress.t() | map(),
      legal_name: String.t(),
      legal_representative: SEO.JSONLD.Person.t() | map(),
      lei_code: String.t(),
      location:
        String.t()
        | SEO.JSONLD.PostalAddress.t()
        | map()
        | SEO.JSONLD.VirtualLocation.t()
        | SEO.JSONLD.Place.t(),
      makes_offer: SEO.JSONLD.Offer.t() | map(),
      member: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      member_of:
        SEO.JSONLD.ProgramMembership.t()
        | map()
        | SEO.JSONLD.Organization.t()
        | SEO.JSONLD.MemberProgramTier.t(),
      members: SEO.JSONLD.Person.t() | map() | SEO.JSONLD.Organization.t(),
      naics: String.t(),
      nonprofit_status:
        :charitable_incorporated_organization
        | :de_cooperative_charity
        | :de_foundation_charity
        | :de_joint_stock_company_charity
        | :de_limited_liability_charity
        | :de_not_registered_association_charity
        | :de_public_charity
        | :de_registered_association_charity
        | :it_cooperative_charity
        | :it_mutual_aid_charity
        | :it_social_company_charity
        | :it_social_promotion_charity
        | :it_sport_company_charity
        | :it_volunteer_association_charity
        | :limited_by_guarantee_charity
        | :nonprofit501a
        | :nonprofit501c1
        | :nonprofit501c10
        | :nonprofit501c11
        | :nonprofit501c12
        | :nonprofit501c13
        | :nonprofit501c14
        | :nonprofit501c15
        | :nonprofit501c16
        | :nonprofit501c17
        | :nonprofit501c18
        | :nonprofit501c19
        | :nonprofit501c2
        | :nonprofit501c20
        | :nonprofit501c21
        | :nonprofit501c22
        | :nonprofit501c23
        | :nonprofit501c24
        | :nonprofit501c25
        | :nonprofit501c26
        | :nonprofit501c27
        | :nonprofit501c28
        | :nonprofit501c3
        | :nonprofit501c4
        | :nonprofit501c5
        | :nonprofit501c6
        | :nonprofit501c7
        | :nonprofit501c8
        | :nonprofit501c9
        | :nonprofit501d
        | :nonprofit501e
        | :nonprofit501f
        | :nonprofit501k
        | :nonprofit501n
        | :nonprofit501q
        | :nonprofit527
        | :nonprofit_anbi
        | :nonprofit_sbbi
        | :uk_trust
        | :unincorporated_association_charity,
      number_of_employees: SEO.JSONLD.QuantitativeValue.t() | map(),
      ownership_funding_info:
        SEO.JSONLD.AboutPage.t()
        | map()
        | SEO.JSONLD.CreativeWork.t()
        | String.t()
        | URI.t(),
      owns: SEO.JSONLD.Thing.t() | map(),
      parent_organization: SEO.JSONLD.Organization.t() | map(),
      publishing_principles:
        SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
      seeks: SEO.JSONLD.Demand.t() | map(),
      service_area:
        SEO.JSONLD.GeoShape.t()
        | map()
        | SEO.JSONLD.AdministrativeArea.t()
        | SEO.JSONLD.Place.t(),
      skills: String.t() | SEO.JSONLD.DefinedTerm.t() | map(),
      sponsor: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      sub_organization: SEO.JSONLD.Organization.t() | map(),
      tax_id: String.t(),
      unnamed_sources_policy:
        SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
      vat_id: String.t(),
      additional_type: String.t() | URI.t(),
      alternate_name: String.t(),
      description: SEO.JSONLD.TextObject.t() | map() | String.t(),
      disambiguating_description: String.t(),
      identifier: String.t() | URI.t() | SEO.JSONLD.PropertyValue.t() | map(),
      image: URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
      main_entity_of_page:
        SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
      name: String.t(),
      owner: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      potential_action: SEO.JSONLD.Action.t() | map(),
      same_as: URI.t() | String.t(),
      subject_of: SEO.JSONLD.Event.t() | map() | SEO.JSONLD.CreativeWork.t(),
      url: URI.t() | String.t()
    ]

t()

@type t() :: %{required(String.t()) => term()}

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "GeneralContractor", plus any camelCased field keys the caller provided (see build/1). "@context" is added at render time by SEO.JSONLD.meta/1 on the top-level node only.

Functions

build(attrs)

@spec build(attrs()) :: t()

Build a GeneralContractor JSON-LD map.

Fields

This type has no own properties. See the inherited properties below.

Inherited properties

Additional properties are available through the inheritance chain. See each ancestor's docs for its properties: