{
  "@context": {
    "@vocab": "https://fairly.gg/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "fairly": "https://fairly.gg/schema#",
    "AlertRequest": "fairly:AlertRequest",
    "email": {
      "@id": "fairly:email"
    },
    "game_id": {
      "@id": "fairly:game_id"
    },
    "target_price": {
      "@id": "fairly:target_price"
    },
    "currency": {
      "@id": "fairly:currency"
    },
    "region": {
      "@id": "fairly:region"
    },
    "edition": {
      "@id": "fairly:edition"
    },
    "ApiResponseOfDealModel": "fairly:ApiResponseOfDealModel",
    "data": {
      "@id": "fairly:data"
    },
    "fetched_at": {
      "@id": "fairly:fetched_at",
      "@type": "xsd:dateTime"
    },
    "data_age_seconds": {
      "@id": "fairly:data_age_seconds",
      "@type": "xsd:integer"
    },
    "stale": {
      "@id": "fairly:stale",
      "@type": "xsd:boolean"
    },
    "region_fallback": {
      "@id": "fairly:region_fallback"
    },
    "attribution": {
      "@id": "fairly:attribution",
      "@type": "xsd:string"
    },
    "ApiResponseOfDiscoverPageModel": "fairly:ApiResponseOfDiscoverPageModel",
    "ApiResponseOfGameDetailModel": "fairly:ApiResponseOfGameDetailModel",
    "ApiResponseOfGameIndexPage": "fairly:ApiResponseOfGameIndexPage",
    "ApiResponseOfIReadOnlyListOfDealModel": "fairly:ApiResponseOfIReadOnlyListOfDealModel",
    "ApiResponseOfIReadOnlyListOfDiscoverTierModel": "fairly:ApiResponseOfIReadOnlyListOfDiscoverTierModel",
    "ApiResponseOfIReadOnlyListOfGameSummary": "fairly:ApiResponseOfIReadOnlyListOfGameSummary",
    "ApiResponseOfIReadOnlyListOfHistoryPoint": "fairly:ApiResponseOfIReadOnlyListOfHistoryPoint",
    "ApiResponseOfIReadOnlyListOfSourceStatus": "fairly:ApiResponseOfIReadOnlyListOfSourceStatus",
    "ApiResponseOfIReadOnlyListOfStoreView": "fairly:ApiResponseOfIReadOnlyListOfStoreView",
    "ApiResponseOfIReadOnlyListOfSubscriptionSummaryModel": "fairly:ApiResponseOfIReadOnlyListOfSubscriptionSummaryModel",
    "ApiResponseOfPlanResult": "fairly:ApiResponseOfPlanResult",
    "CheapestWayResult": "fairly:CheapestWayResult",
    "winner": {
      "@id": "fairly:winner"
    },
    "candidates": {
      "@id": "fairly:candidates",
      "@container": "@list"
    },
    "notes": {
      "@id": "fairly:notes",
      "@container": "@list"
    },
    "sentence": {
      "@id": "fairly:sentence"
    },
    "CreatedKeyModel": "fairly:CreatedKeyModel",
    "api_key": {
      "@id": "fairly:api_key",
      "@type": "xsd:string"
    },
    "daily_quota": {
      "@id": "fairly:daily_quota",
      "@type": "xsd:integer"
    },
    "rate_limit_per_minute": {
      "@id": "fairly:rate_limit_per_minute",
      "@type": "xsd:integer"
    },
    "created_at": {
      "@id": "fairly:created_at",
      "@type": "xsd:dateTime"
    },
    "notice": {
      "@id": "fairly:notice",
      "@type": "xsd:string"
    },
    "CreateKeyRequest": "fairly:CreateKeyRequest",
    "project_name": {
      "@id": "fairly:project_name"
    },
    "DealModel": "fairly:DealModel",
    "game": {
      "@id": "fairly:game",
      "@type": "@id"
    },
    "best_offer": {
      "@id": "fairly:best_offer"
    },
    "time_to_beat_hours": {
      "@id": "fairly:time_to_beat_hours"
    },
    "review_percent": {
      "@id": "fairly:review_percent"
    },
    "other_editions": {
      "@id": "fairly:other_editions",
      "@type": "xsd:integer"
    },
    "leaving_at": {
      "@id": "fairly:leaving_at",
      "@type": "xsd:dateTime"
    },
    "drop": {
      "@id": "fairly:drop"
    },
    "is_new": {
      "@id": "fairly:is_new",
      "@type": "xsd:boolean"
    },
    "hours_per_unit": {
      "@id": "fairly:hours_per_unit"
    },
    "leaving_announced": {
      "@id": "fairly:leaving_announced",
      "@type": "xsd:boolean"
    },
    "subscription_codes": {
      "@id": "fairly:subscription_codes",
      "@container": "@list"
    },
    "DiscoverPageModel": "fairly:DiscoverPageModel",
    "rows": {
      "@id": "fairly:rows",
      "@container": "@list"
    },
    "total": {
      "@id": "fairly:total",
      "@type": "xsd:integer"
    },
    "at_low_count": {
      "@id": "fairly:at_low_count",
      "@type": "xsd:integer"
    },
    "best_value": {
      "@id": "fairly:best_value"
    },
    "page": {
      "@id": "fairly:page",
      "@type": "xsd:integer"
    },
    "page_size": {
      "@id": "fairly:page_size",
      "@type": "xsd:integer"
    },
    "threshold": {
      "@id": "fairly:threshold"
    },
    "DiscoverTierModel": "fairly:DiscoverTierModel",
    "usd": {
      "@id": "fairly:usd",
      "@type": "xsd:integer"
    },
    "euros": {
      "@id": "fairly:euros",
      "@type": "xsd:integer"
    },
    "Edition": "fairly:Edition",
    "FeeKind": "fairly:FeeKind",
    "FeeLabel": "fairly:FeeLabel",
    "FeeOrder": "fairly:FeeOrder",
    "FeeRuleStatus": "fairly:FeeRuleStatus",
    "FeeRuleView": "fairly:FeeRuleView",
    "payment_method": {
      "@id": "fairly:payment_method",
      "@type": "@id"
    },
    "kind": {
      "@id": "fairly:kind",
      "@type": "@id"
    },
    "order": {
      "@id": "fairly:order",
      "@type": "@id"
    },
    "percent": {
      "@id": "fairly:percent"
    },
    "fixed": {
      "@id": "fairly:fixed"
    },
    "status": {
      "@id": "fairly:status",
      "@type": "@id"
    },
    "verified_at": {
      "@id": "fairly:verified_at",
      "@type": "xsd:dateTime"
    },
    "FinishInTimeResult": "fairly:FinishInTimeResult",
    "days_left": {
      "@id": "fairly:days_left",
      "@type": "xsd:integer"
    },
    "hours_needed": {
      "@id": "fairly:hours_needed",
      "@type": "xsd:decimal"
    },
    "hours_per_day": {
      "@id": "fairly:hours_per_day",
      "@type": "xsd:decimal"
    },
    "verdict": {
      "@id": "fairly:verdict",
      "@type": "@id"
    },
    "FinishVerdict": "fairly:FinishVerdict",
    "FreshnessKind": "fairly:FreshnessKind",
    "GameDetailModel": "fairly:GameDetailModel",
    "release_date": {
      "@id": "fairly:release_date",
      "@type": "xsd:date"
    },
    "genres": {
      "@id": "fairly:genres",
      "@container": "@list"
    },
    "editions": {
      "@id": "fairly:editions",
      "@container": "@list"
    },
    "time_to_beat_minutes": {
      "@id": "fairly:time_to_beat_minutes"
    },
    "offers": {
      "@id": "fairly:offers",
      "@container": "@list"
    },
    "subscriptions": {
      "@id": "fairly:subscriptions",
      "@container": "@list"
    },
    "cheapest_way": {
      "@id": "fairly:cheapest_way",
      "@type": "@id"
    },
    "lows": {
      "@id": "fairly:lows",
      "@type": "@id"
    },
    "other_region_offers": {
      "@id": "fairly:other_region_offers",
      "@container": "@list"
    },
    "console_offers": {
      "@id": "fairly:console_offers",
      "@container": "@list"
    },
    "is_free_to_play": {
      "@id": "fairly:is_free_to_play",
      "@type": "xsd:boolean"
    },
    "GameIndexEntry": "fairly:GameIndexEntry",
    "id": {
      "@id": "fairly:id",
      "@type": "xsd:string"
    },
    "slug": {
      "@id": "fairly:slug",
      "@type": "xsd:string"
    },
    "title": {
      "@id": "fairly:title",
      "@type": "xsd:string"
    },
    "updated_at": {
      "@id": "fairly:updated_at",
      "@type": "xsd:dateTime"
    },
    "GameIndexPage": "fairly:GameIndexPage",
    "items": {
      "@id": "fairly:items",
      "@container": "@list"
    },
    "GameSummary": "fairly:GameSummary",
    "steam_app_id": {
      "@id": "fairly:steam_app_id"
    },
    "igdb_id": {
      "@id": "fairly:igdb_id"
    },
    "cover_url": {
      "@id": "fairly:cover_url"
    },
    "cover_portrait_url": {
      "@id": "fairly:cover_portrait_url"
    },
    "HistoryPoint": "fairly:HistoryPoint",
    "day": {
      "@id": "fairly:day",
      "@type": "xsd:date"
    },
    "price": {
      "@id": "fairly:price",
      "@type": "@id"
    },
    "HttpValidationProblemDetails": "fairly:HttpValidationProblemDetails",
    "type": {
      "@id": "fairly:type"
    },
    "detail": {
      "@id": "fairly:detail"
    },
    "instance": {
      "@id": "fairly:instance"
    },
    "errors": {
      "@id": "fairly:errors"
    },
    "LowBasis": "fairly:LowBasis",
    "LowLabel": "fairly:LowLabel",
    "above_percent": {
      "@id": "fairly:above_percent",
      "@type": "xsd:integer"
    },
    "since": {
      "@id": "fairly:since",
      "@type": "xsd:date"
    },
    "basis": {
      "@id": "fairly:basis"
    },
    "LowLabelKind": "fairly:LowLabelKind",
    "LowsModel": "fairly:LowsModel",
    "all_time": {
      "@id": "fairly:all_time"
    },
    "last_90_days": {
      "@id": "fairly:last_90_days"
    },
    "all_time_at": {
      "@id": "fairly:all_time_at",
      "@type": "xsd:dateTime"
    },
    "Money": "fairly:Money",
    "amount": {
      "@id": "fairly:amount",
      "@type": "xsd:decimal"
    },
    "formatted": {
      "@id": "fairly:formatted",
      "@type": "xsd:string"
    },
    "NewsletterRequest": "fairly:NewsletterRequest",
    "OfferModel": "fairly:OfferModel",
    "offer_id": {
      "@id": "fairly:offer_id",
      "@type": "xsd:integer"
    },
    "store_code": {
      "@id": "fairly:store_code",
      "@type": "xsd:string"
    },
    "store_name": {
      "@id": "fairly:store_name",
      "@type": "xsd:string"
    },
    "store_kind": {
      "@id": "fairly:store_kind",
      "@type": "@id"
    },
    "platform": {
      "@id": "fairly:platform",
      "@type": "@id"
    },
    "region_lock": {
      "@id": "fairly:region_lock",
      "@type": "@id"
    },
    "real_price": {
      "@id": "fairly:real_price",
      "@type": "@id"
    },
    "list_price": {
      "@id": "fairly:list_price",
      "@type": "@id"
    },
    "fee_label": {
      "@id": "fairly:fee_label",
      "@type": "@id"
    },
    "fee_verified_at": {
      "@id": "fairly:fee_verified_at",
      "@type": "xsd:dateTime"
    },
    "discount_pct": {
      "@id": "fairly:discount_pct"
    },
    "low": {
      "@id": "fairly:low",
      "@type": "@id"
    },
    "converted": {
      "@id": "fairly:converted",
      "@type": "xsd:boolean"
    },
    "freshness": {
      "@id": "fairly:freshness",
      "@type": "@id"
    },
    "url": {
      "@id": "fairly:url",
      "@type": "xsd:string"
    },
    "measured_in": {
      "@id": "fairly:measured_in"
    },
    "discount_ends_at": {
      "@id": "fairly:discount_ends_at",
      "@type": "xsd:dateTime"
    },
    "price_region": {
      "@id": "fairly:price_region",
      "@type": "@id"
    },
    "eligible": {
      "@id": "fairly:eligible",
      "@type": "xsd:boolean"
    },
    "PaymentMethod": "fairly:PaymentMethod",
    "PlanAssumptions": "fairly:PlanAssumptions",
    "hours_per_week": {
      "@id": "fairly:hours_per_week",
      "@type": "xsd:decimal"
    },
    "hours_per_month": {
      "@id": "fairly:hours_per_month",
      "@type": "xsd:decimal"
    },
    "weeks_per_month": {
      "@id": "fairly:weeks_per_month",
      "@type": "xsd:integer"
    },
    "play_time_source": {
      "@id": "fairly:play_time_source",
      "@type": "xsd:string"
    },
    "owned_codes": {
      "@id": "fairly:owned_codes",
      "@container": "@list"
    },
    "PlanExcluded": "fairly:PlanExcluded",
    "reason": {
      "@id": "fairly:reason",
      "@type": "@id"
    },
    "buy_price": {
      "@id": "fairly:buy_price"
    },
    "PlanExclusion": "fairly:PlanExclusion",
    "PlannedGame": "fairly:PlannedGame",
    "source": {
      "@id": "fairly:source",
      "@type": "@id"
    },
    "subscription_code": {
      "@id": "fairly:subscription_code"
    },
    "play_minutes": {
      "@id": "fairly:play_minutes",
      "@type": "xsd:integer"
    },
    "first_month": {
      "@id": "fairly:first_month",
      "@type": "xsd:integer"
    },
    "finish_month": {
      "@id": "fairly:finish_month",
      "@type": "xsd:integer"
    },
    "cost": {
      "@id": "fairly:cost",
      "@type": "@id"
    },
    "buy_store": {
      "@id": "fairly:buy_store"
    },
    "buy_offer_id": {
      "@id": "fairly:buy_offer_id"
    },
    "buy_price_fetched_at": {
      "@id": "fairly:buy_price_fetched_at",
      "@type": "xsd:dateTime"
    },
    "assumes_catalog_stays": {
      "@id": "fairly:assumes_catalog_stays",
      "@type": "xsd:boolean"
    },
    "PlannedMonth": "fairly:PlannedMonth",
    "index": {
      "@id": "fairly:index",
      "@type": "xsd:integer"
    },
    "starts_at": {
      "@id": "fairly:starts_at",
      "@type": "xsd:dateTime"
    },
    "paid_subscription": {
      "@id": "fairly:paid_subscription"
    },
    "finishing_game_ids": {
      "@id": "fairly:finishing_game_ids",
      "@container": "@list"
    },
    "PlanRequestBody": "fairly:PlanRequestBody",
    "games": {
      "@id": "fairly:games"
    },
    "owned_subscriptions": {
      "@id": "fairly:owned_subscriptions"
    },
    "include_marketplaces": {
      "@id": "fairly:include_marketplaces"
    },
    "PlanResult": "fairly:PlanResult",
    "months": {
      "@id": "fairly:months",
      "@container": "@list"
    },
    "excluded": {
      "@id": "fairly:excluded",
      "@container": "@list"
    },
    "totals": {
      "@id": "fairly:totals",
      "@type": "@id"
    },
    "assumptions": {
      "@id": "fairly:assumptions",
      "@type": "@id"
    },
    "PlanSource": "fairly:PlanSource",
    "PlanSubscription": "fairly:PlanSubscription",
    "code": {
      "@id": "fairly:code",
      "@type": "xsd:string"
    },
    "name": {
      "@id": "fairly:name",
      "@type": "xsd:string"
    },
    "monthly_price": {
      "@id": "fairly:monthly_price",
      "@type": "@id"
    },
    "PlanTotals": "fairly:PlanTotals",
    "plan": {
      "@id": "fairly:plan",
      "@type": "@id"
    },
    "buy_everything": {
      "@id": "fairly:buy_everything",
      "@type": "@id"
    },
    "savings": {
      "@id": "fairly:savings",
      "@type": "@id"
    },
    "buy_everything_excludes_game_ids": {
      "@id": "fairly:buy_everything_excludes_game_ids",
      "@container": "@list"
    },
    "Platform": "fairly:Platform",
    "PlayKind": "fairly:PlayKind",
    "PlayOption": "fairly:PlayOption",
    "label": {
      "@id": "fairly:label",
      "@type": "xsd:string"
    },
    "owned": {
      "@id": "fairly:owned",
      "@type": "xsd:boolean"
    },
    "ProblemDetails": "fairly:ProblemDetails",
    "Region": "fairly:Region",
    "RegionLock": "fairly:RegionLock",
    "ReportRequest": "fairly:ReportRequest",
    "SourceStatus": "fairly:SourceStatus",
    "last_success_at": {
      "@id": "fairly:last_success_at",
      "@type": "xsd:dateTime"
    },
    "consecutive_failures": {
      "@id": "fairly:consecutive_failures",
      "@type": "xsd:integer"
    },
    "age_seconds": {
      "@id": "fairly:age_seconds"
    },
    "expected_every_seconds": {
      "@id": "fairly:expected_every_seconds"
    },
    "overdue": {
      "@id": "fairly:overdue",
      "@type": "xsd:boolean"
    },
    "StoreKind": "fairly:StoreKind",
    "StoreView": "fairly:StoreView",
    "fee_rules": {
      "@id": "fairly:fee_rules",
      "@container": "@list"
    },
    "SubscribeAccepted": "fairly:SubscribeAccepted",
    "message": {
      "@id": "fairly:message",
      "@type": "xsd:string"
    },
    "SubscriptionNote": "fairly:SubscriptionNote",
    "SubscriptionNoteKind": "fairly:SubscriptionNoteKind",
    "SubscriptionSummaryModel": "fairly:SubscriptionSummaryModel",
    "catalog_count": {
      "@id": "fairly:catalog_count",
      "@type": "xsd:integer"
    },
    "new_this_week": {
      "@id": "fairly:new_this_week",
      "@type": "xsd:integer"
    },
    "leaving_soon": {
      "@id": "fairly:leaving_soon",
      "@type": "xsd:integer"
    },
    "SubscriptionView": "fairly:SubscriptionView",
    "in_catalog": {
      "@id": "fairly:in_catalog",
      "@type": "xsd:boolean"
    },
    "finish": {
      "@id": "fairly:finish"
    },
    "TokenResult": "fairly:TokenResult"
  },
  "@type": "schema:Dataset",
  "schema:name": "Fairly API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects Fairly's own API contract declares: one class per component schema, one property per declared field, typed from the contract. Derived by script (derive-json-ld.py, 2026-11-07) from openapi/_original/fairly-gg-api-openapi.json.",
  "dcterms:created": "2026-11-07",
  "dcterms:source": [
    "openapi/_original/fairly-gg-api-openapi.json"
  ]
}