{
  "@context": {
    "@vocab": "https://toolaby.app/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "toolaby": "https://toolaby.app/schema#",
    "CustomerListItem": "toolaby:CustomerListItem",
    "email": {
      "@id": "toolaby:email",
      "@type": "xsd:string"
    },
    "account": {
      "@id": "toolaby:account",
      "@type": "xsd:boolean"
    },
    "entitled": {
      "@id": "toolaby:entitled",
      "@type": "xsd:boolean"
    },
    "via": {
      "@id": "toolaby:via",
      "@type": "xsd:string"
    },
    "since": {
      "@id": "toolaby:since",
      "@type": "xsd:string"
    },
    "last_active_at": {
      "@id": "toolaby:last_active_at",
      "@type": "xsd:string"
    },
    "devices": {
      "@id": "toolaby:devices",
      "@type": "xsd:integer"
    },
    "Error": "toolaby:Error",
    "error": {
      "@id": "toolaby:error"
    },
    "Customer": "toolaby:Customer",
    "paid_at": {
      "@id": "toolaby:paid_at",
      "@type": "xsd:string"
    },
    "plan": {
      "@id": "toolaby:plan"
    },
    "subscription": {
      "@id": "toolaby:subscription"
    },
    "trial": {
      "@id": "toolaby:trial"
    },
    "Grant": "toolaby:Grant",
    "id": {
      "@id": "toolaby:id",
      "@type": "xsd:string"
    },
    "tool": {
      "@id": "toolaby:tool",
      "@type": "xsd:string"
    },
    "kind": {
      "@id": "toolaby:kind",
      "@type": "xsd:string"
    },
    "starts_at": {
      "@id": "toolaby:starts_at",
      "@type": "xsd:string"
    },
    "ends_at": {
      "@id": "toolaby:ends_at",
      "@type": "xsd:string"
    },
    "revoked_at": {
      "@id": "toolaby:revoked_at",
      "@type": "xsd:string"
    },
    "note": {
      "@id": "toolaby:note",
      "@type": "xsd:string"
    },
    "created_at": {
      "@id": "toolaby:created_at",
      "@type": "xsd:string"
    },
    "live": {
      "@id": "toolaby:live",
      "@type": "xsd:boolean"
    },
    "NewGrant": "toolaby:NewGrant",
    "days": {
      "@id": "toolaby:days",
      "@type": "xsd:integer"
    },
    "AnalyticsSummary": "toolaby:AnalyticsSummary",
    "range": {
      "@id": "toolaby:range",
      "@type": "@id"
    },
    "channel": {
      "@id": "toolaby:channel",
      "@type": "xsd:string"
    },
    "counting": {
      "@id": "toolaby:counting",
      "@type": "xsd:boolean"
    },
    "parts": {
      "@id": "toolaby:parts"
    },
    "funnel": {
      "@id": "toolaby:funnel"
    },
    "revenue": {
      "@id": "toolaby:revenue"
    },
    "uninstalls": {
      "@id": "toolaby:uninstalls"
    },
    "AnalyticsRange": "toolaby:AnalyticsRange",
    "from": {
      "@id": "toolaby:from",
      "@type": "xsd:string"
    },
    "to": {
      "@id": "toolaby:to",
      "@type": "xsd:string"
    },
    "clamped": {
      "@id": "toolaby:clamped",
      "@type": "xsd:boolean"
    },
    "AnalyticsTable": "toolaby:AnalyticsTable",
    "part": {
      "@id": "toolaby:part",
      "@type": "xsd:string"
    },
    "data": {
      "@id": "toolaby:data",
      "@container": "@list"
    },
    "Usage": "toolaby:Usage",
    "object": {
      "@id": "toolaby:object",
      "@type": "xsd:string"
    },
    "allowed": {
      "@id": "toolaby:allowed",
      "@type": "xsd:boolean"
    },
    "unlimited": {
      "@id": "toolaby:unlimited",
      "@type": "xsd:boolean"
    },
    "used": {
      "@id": "toolaby:used",
      "@type": "xsd:integer"
    },
    "remaining": {
      "@id": "toolaby:remaining",
      "@type": "xsd:integer"
    },
    "limit": {
      "@id": "toolaby:limit",
      "@type": "xsd:integer"
    },
    "per": {
      "@id": "toolaby:per",
      "@type": "xsd:string"
    },
    "window": {
      "@id": "toolaby:window",
      "@type": "xsd:string"
    },
    "resetsAt": {
      "@id": "toolaby:resetsAt",
      "@type": "xsd:string"
    },
    "reason": {
      "@id": "toolaby:reason",
      "@type": "xsd:string"
    },
    "sharedUses": {
      "@id": "toolaby:sharedUses",
      "@type": "xsd:boolean"
    },
    "deviceLimit": {
      "@id": "toolaby:deviceLimit"
    }
  },
  "@type": "schema:Dataset",
  "schema:name": "toolaby-app API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects toolaby-app'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-10-30) from openapi/toolaby-app-openapi.json.",
  "dcterms:created": "2026-10-30",
  "dcterms:source": [
    "openapi/toolaby-app-openapi.json"
  ]
}