{
  "@context": {
    "@vocab": "https://flowral.app/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "flowral": "https://flowral.app/schema#",
    "Error": "flowral:Error",
    "error": {
      "@id": "flowral:error"
    },
    "Context": "flowral:Context",
    "workspaceId": {
      "@id": "flowral:workspaceId",
      "@type": "xsd:string"
    },
    "workspaceName": {
      "@id": "flowral:workspaceName",
      "@type": "xsd:string"
    },
    "credentialId": {
      "@id": "flowral:credentialId",
      "@type": "xsd:string"
    },
    "credentialName": {
      "@id": "flowral:credentialName",
      "@type": "xsd:string"
    },
    "role": {
      "@id": "flowral:role",
      "@type": "xsd:string"
    },
    "scopes": {
      "@id": "flowral:scopes",
      "@container": "@list"
    },
    "plan": {
      "@id": "flowral:plan",
      "@type": "xsd:string"
    },
    "Token": "flowral:Token",
    "access_token": {
      "@id": "flowral:access_token",
      "@type": "xsd:string"
    },
    "token_type": {
      "@id": "flowral:token_type",
      "@type": "xsd:string"
    },
    "expires_in": {
      "@id": "flowral:expires_in",
      "@type": "xsd:integer"
    },
    "scope": {
      "@id": "flowral:scope",
      "@type": "xsd:string"
    },
    "FlowSummary": "flowral:FlowSummary",
    "id": {
      "@id": "flowral:id",
      "@type": "xsd:string"
    },
    "name": {
      "@id": "flowral:name",
      "@type": "xsd:string"
    },
    "description": {
      "@id": "flowral:description",
      "@type": "xsd:string"
    },
    "archived": {
      "@id": "flowral:archived",
      "@type": "xsd:boolean"
    },
    "public": {
      "@id": "flowral:public",
      "@type": "xsd:boolean"
    },
    "publicUrl": {
      "@id": "flowral:publicUrl",
      "@type": "xsd:string"
    },
    "dueDate": {
      "@id": "flowral:dueDate",
      "@type": "xsd:dateTime"
    },
    "taskCount": {
      "@id": "flowral:taskCount",
      "@type": "xsd:integer"
    },
    "doneCount": {
      "@id": "flowral:doneCount",
      "@type": "xsd:integer"
    },
    "readyCount": {
      "@id": "flowral:readyCount",
      "@type": "xsd:integer"
    },
    "createdAt": {
      "@id": "flowral:createdAt",
      "@type": "xsd:dateTime"
    },
    "updatedAt": {
      "@id": "flowral:updatedAt",
      "@type": "xsd:dateTime"
    },
    "Task": "flowral:Task",
    "flowId": {
      "@id": "flowral:flowId",
      "@type": "xsd:string"
    },
    "parentId": {
      "@id": "flowral:parentId",
      "@type": "xsd:string"
    },
    "status": {
      "@id": "flowral:status",
      "@type": "xsd:string"
    },
    "dependsOn": {
      "@id": "flowral:dependsOn",
      "@container": "@list"
    },
    "blockedBy": {
      "@id": "flowral:blockedBy",
      "@container": "@list"
    },
    "assigneeId": {
      "@id": "flowral:assigneeId",
      "@type": "xsd:string"
    },
    "estimateHours": {
      "@id": "flowral:estimateHours",
      "@type": "xsd:decimal"
    },
    "criticalPath": {
      "@id": "flowral:criticalPath",
      "@type": "xsd:boolean"
    },
    "subtasks": {
      "@id": "flowral:subtasks",
      "@container": "@list"
    },
    "requiredDeliverables": {
      "@id": "flowral:requiredDeliverables",
      "@container": "@list"
    },
    "SubTask": "flowral:SubTask",
    "done": {
      "@id": "flowral:done",
      "@type": "xsd:boolean"
    },
    "WorkItem": "flowral:WorkItem",
    "taskId": {
      "@id": "flowral:taskId",
      "@type": "xsd:string"
    },
    "taskName": {
      "@id": "flowral:taskName",
      "@type": "xsd:string"
    },
    "flowName": {
      "@id": "flowral:flowName",
      "@type": "xsd:string"
    },
    "Schedule": "flowral:Schedule",
    "projectedFinish": {
      "@id": "flowral:projectedFinish",
      "@type": "xsd:string"
    },
    "onTrack": {
      "@id": "flowral:onTrack",
      "@type": "xsd:boolean"
    },
    "entries": {
      "@id": "flowral:entries",
      "@container": "@list"
    },
    "ScheduleEntry": "flowral:ScheduleEntry",
    "earliestStart": {
      "@id": "flowral:earliestStart",
      "@type": "xsd:string"
    },
    "earliestFinish": {
      "@id": "flowral:earliestFinish",
      "@type": "xsd:string"
    },
    "estimated": {
      "@id": "flowral:estimated",
      "@type": "xsd:boolean"
    },
    "Report": "flowral:Report",
    "completion": {
      "@id": "flowral:completion",
      "@type": "xsd:decimal"
    },
    "tasksTotal": {
      "@id": "flowral:tasksTotal",
      "@type": "xsd:integer"
    },
    "tasksDone": {
      "@id": "flowral:tasksDone",
      "@type": "xsd:integer"
    },
    "tasksReady": {
      "@id": "flowral:tasksReady",
      "@type": "xsd:integer"
    },
    "tasksBlocked": {
      "@id": "flowral:tasksBlocked",
      "@type": "xsd:integer"
    },
    "hoursEstimated": {
      "@id": "flowral:hoursEstimated",
      "@type": "xsd:decimal"
    },
    "hoursRemaining": {
      "@id": "flowral:hoursRemaining",
      "@type": "xsd:decimal"
    },
    "unestimatedTasks": {
      "@id": "flowral:unestimatedTasks",
      "@container": "@list"
    },
    "orphanedTasks": {
      "@id": "flowral:orphanedTasks",
      "@container": "@list"
    },
    "workload": {
      "@id": "flowral:workload",
      "@container": "@list"
    },
    "topBlockers": {
      "@id": "flowral:topBlockers",
      "@container": "@list"
    },
    "Comment": "flowral:Comment",
    "authorId": {
      "@id": "flowral:authorId",
      "@type": "xsd:string"
    },
    "authorName": {
      "@id": "flowral:authorName",
      "@type": "xsd:string"
    },
    "body": {
      "@id": "flowral:body",
      "@type": "xsd:string"
    },
    "Attachment": "flowral:Attachment",
    "mimeType": {
      "@id": "flowral:mimeType",
      "@type": "xsd:string"
    },
    "sizeBytes": {
      "@id": "flowral:sizeBytes",
      "@type": "xsd:integer"
    },
    "kind": {
      "@id": "flowral:kind",
      "@type": "xsd:string"
    },
    "uploadedAt": {
      "@id": "flowral:uploadedAt",
      "@type": "xsd:dateTime"
    },
    "BrainstormSummary": "flowral:BrainstormSummary",
    "ideaCount": {
      "@id": "flowral:ideaCount",
      "@type": "xsd:integer"
    },
    "Idea": "flowral:Idea",
    "brainstormId": {
      "@id": "flowral:brainstormId",
      "@type": "xsd:string"
    },
    "title": {
      "@id": "flowral:title",
      "@type": "xsd:string"
    },
    "notes": {
      "@id": "flowral:notes",
      "@type": "xsd:string"
    },
    "tags": {
      "@id": "flowral:tags",
      "@container": "@list"
    },
    "commentCount": {
      "@id": "flowral:commentCount",
      "@type": "xsd:integer"
    },
    "fileCount": {
      "@id": "flowral:fileCount",
      "@type": "xsd:integer"
    },
    "IdeaComment": "flowral:IdeaComment",
    "ideaId": {
      "@id": "flowral:ideaId",
      "@type": "xsd:string"
    },
    "Member": "flowral:Member",
    "email": {
      "@id": "flowral:email",
      "@type": "xsd:string"
    },
    "Invite": "flowral:Invite",
    "Share": "flowral:Share",
    "Template": "flowral:Template",
    "category": {
      "@id": "flowral:category",
      "@type": "xsd:string"
    },
    "usedCount": {
      "@id": "flowral:usedCount",
      "@type": "xsd:integer"
    },
    "SearchResult": "flowral:SearchResult",
    "type": {
      "@id": "flowral:type",
      "@type": "xsd:string"
    },
    "url": {
      "@id": "flowral:url",
      "@type": "xsd:string"
    },
    "NotificationPreferences": "flowral:NotificationPreferences",
    "memberId": {
      "@id": "flowral:memberId",
      "@type": "xsd:string"
    },
    "muted": {
      "@id": "flowral:muted",
      "@type": "xsd:boolean"
    },
    "events": {
      "@id": "flowral:events"
    },
    "timezone": {
      "@id": "flowral:timezone",
      "@type": "xsd:string"
    },
    "digestHour": {
      "@id": "flowral:digestHour",
      "@type": "xsd:integer"
    },
    "NotificationDelivery": "flowral:NotificationDelivery",
    "sentAt": {
      "@id": "flowral:sentAt",
      "@type": "xsd:dateTime"
    },
    "subject": {
      "@id": "flowral:subject",
      "@type": "xsd:string"
    },
    "itemCount": {
      "@id": "flowral:itemCount",
      "@type": "xsd:integer"
    },
    "flowIds": {
      "@id": "flowral:flowIds",
      "@container": "@list"
    },
    "suppressed": {
      "@id": "flowral:suppressed",
      "@type": "xsd:integer"
    },
    "NotificationDigest": "flowral:NotificationDigest",
    "generatedAt": {
      "@id": "flowral:generatedAt",
      "@type": "xsd:dateTime"
    },
    "wouldSend": {
      "@id": "flowral:wouldSend",
      "@type": "xsd:boolean"
    },
    "counts": {
      "@id": "flowral:counts"
    },
    "ready": {
      "@id": "flowral:ready",
      "@container": "@list"
    },
    "inProgress": {
      "@id": "flowral:inProgress",
      "@container": "@list"
    },
    "blocked": {
      "@id": "flowral:blocked",
      "@container": "@list"
    },
    "available": {
      "@id": "flowral:available",
      "@container": "@list"
    },
    "completed": {
      "@id": "flowral:completed",
      "@container": "@list"
    },
    "atRisk": {
      "@id": "flowral:atRisk",
      "@container": "@list"
    }
  },
  "@type": "schema:Dataset",
  "schema:name": "Flowral API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects Flowral'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-08) from openapi/flowral-app-openapi.json.",
  "dcterms:created": "2026-11-08",
  "dcterms:source": [
    "openapi/flowral-app-openapi.json"
  ]
}