{
  "formatVersion": 1,
  "generatedAt": "2026-10-11T03:14:03.610Z",
  "publisher": {
    "name": {
      "en": "GTT Project"
    },
    "url": "https://gtt-project.org"
  },
  "license": "CC0-1.0",
  "nodes": [
    {
      "url": "https://datamodels.jp/",
      "index": "https://datamodels.jp/catalog.json"
    }
  ],
  "models": [
    {
      "type": "Task",
      "kind": "entity",
      "typeIri": "https://datamodels.jp/ns/task/Task",
      "subject": "redmine",
      "domain": "redmine",
      "source": "minted",
      "contextUrl": "https://models.gtt-project.org/context/redmine/v0.1.0.jsonld",
      "contextAliasUrl": "https://models.gtt-project.org/context/redmine/v0.jsonld",
      "schemaUrl": "https://models.gtt-project.org/schema/redmine/Task/v0.1.0.json",
      "vocabularyUrl": "https://models.gtt-project.org/vocab/redmine/v0.1.0.jsonld",
      "version": "0.1.0",
      "status": "experimental",
      "title": {
        "en": "Task"
      },
      "description": {
        "en": "A tracked unit of work: a ticket or issue in a tracker, a calendar to-do, a municipal work order. State and priority follow RFC 8984 (JSCalendar); the source system's own status name and kind are kept in statusLabel and subtype. Location may be any geometry."
      },
      "sampleProperties": [
        "name",
        "description",
        "project",
        "milestone",
        "parent",
        "relatedTo",
        "refersTo",
        "progress",
        "statusLabel",
        "subtype",
        "category",
        "priority",
        "assignee",
        "author",
        "start",
        "due",
        "completedAt",
        "estimatedDuration",
        "percentComplete",
        "keywords",
        "location",
        "spatialId",
        "isPrivate",
        "source",
        "externalId",
        "dateCreated",
        "dateModified"
      ],
      "pageUrl": "https://models.gtt-project.org/models/redmine/Task/",
      "exampleUrls": [
        "https://models.gtt-project.org/examples/redmine/Task/example.json"
      ],
      "attributes": [
        {
          "name": "name",
          "iri": "https://uri.etsi.org/ngsi-ld/name",
          "ngsiType": "Property",
          "type": "string",
          "required": true,
          "description": {
            "en": "Name or subject"
          }
        },
        {
          "name": "description",
          "iri": "http://purl.org/dc/terms/description",
          "ngsiType": "Property",
          "type": "string",
          "required": false,
          "description": {
            "en": "Description"
          }
        },
        {
          "name": "project",
          "iri": "https://datamodels.jp/ns/task/project",
          "ngsiType": "Relationship",
          "type": "string",
          "format": "uri",
          "target": "https://datamodels.jp/ns/task/Project",
          "required": false,
          "description": {
            "en": "The project this belongs to, when the source system has projects"
          }
        },
        {
          "name": "milestone",
          "iri": "https://datamodels.jp/ns/task/milestone",
          "ngsiType": "Relationship",
          "type": "string",
          "format": "uri",
          "target": "https://datamodels.jp/ns/task/Milestone",
          "required": false,
          "description": {
            "en": "The milestone (version, release) this is planned for"
          }
        },
        {
          "name": "parent",
          "iri": "https://datamodels.jp/ns/task/parent",
          "ngsiType": "Relationship",
          "type": "string",
          "format": "uri",
          "target": "https://datamodels.jp/ns/task/Task",
          "required": false,
          "description": {
            "en": "Parent task (RFC 8984 relatedTo parent)"
          }
        },
        {
          "name": "relatedTo",
          "iri": "https://datamodels.jp/ns/task/relatedTo",
          "ngsiType": "Relationship",
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "target": "https://datamodels.jp/ns/task/Task",
          "multi": true,
          "required": false,
          "description": {
            "en": "Related tasks. Always an array in the key-values form, even with one target. The kind of relation (blocks, precedes, duplicates) is left to extensions"
          }
        },
        {
          "name": "refersTo",
          "iri": "https://datamodels.jp/ns/task/refersTo",
          "ngsiType": "Relationship",
          "type": "string",
          "format": "uri",
          "target": "any",
          "required": false,
          "description": {
            "en": "The entity this task is about (a report, an asset, a road)"
          }
        },
        {
          "name": "progress",
          "iri": "https://datamodels.jp/ns/task/progress",
          "ngsiType": "Property",
          "type": "string",
          "enum": [
            "needs-action",
            "in-process",
            "completed",
            "failed",
            "cancelled"
          ],
          "required": false,
          "description": {
            "en": "Normalised state (RFC 8984 progress): needs-action = not started, in-process = in progress, completed = done, failed = failed, cancelled = cancelled. When no value fits, leave it out and give the local wording in statusLabel."
          }
        },
        {
          "name": "statusLabel",
          "iri": "https://datamodels.jp/ns/task/statusLabel",
          "ngsiType": "Property",
          "type": "string",
          "required": false,
          "description": {
            "en": "The source system's own status name, unchanged (for example \"In progress\", \"Resolved\"). Required when progress is left out"
          }
        },
        {
          "name": "subtype",
          "iri": "https://datamodels.jp/ns/task/subtype",
          "ngsiType": "Property",
          "type": "string",
          "required": false,
          "description": {
            "en": "The source system's kind, for example a tracker, an issue type or a category"
          }
        },
        {
          "name": "category",
          "iri": "https://models.gtt-project.org/ns/redmine#category",
          "ngsiType": "Property",
          "type": "string",
          "required": false,
          "description": {
            "en": "The Redmine issue category, a name that the project defines (for example \"Pothole\"), unchanged"
          }
        },
        {
          "name": "priority",
          "iri": "https://datamodels.jp/ns/task/priority",
          "ngsiType": "Property",
          "type": "integer",
          "required": false,
          "description": {
            "en": "Priority 0 to 9: 1 highest, 9 lowest, 0 undefined (RFC 8984)"
          }
        },
        {
          "name": "assignee",
          "iri": "https://datamodels.jp/ns/task/assignee",
          "ngsiType": "Relationship",
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "target": "agent",
          "multi": true,
          "required": false,
          "description": {
            "en": "Assignees: person, organisation or team entities, possibly outside this subject. Always an array in the key-values form, even with one target"
          }
        },
        {
          "name": "author",
          "iri": "https://schema.org/author",
          "ngsiType": "Relationship",
          "type": "string",
          "format": "uri",
          "target": "agent",
          "required": false,
          "description": {
            "en": "Creator (a person, organisation or team entity)"
          }
        },
        {
          "name": "start",
          "iri": "https://datamodels.jp/ns/task/start",
          "ngsiType": "Property",
          "type": "string",
          "formats": [
            "date",
            "date-time"
          ],
          "required": false,
          "description": {
            "en": "Planned start: a date, or a date and time (RFC 8984 start)"
          }
        },
        {
          "name": "due",
          "iri": "https://datamodels.jp/ns/task/due",
          "ngsiType": "Property",
          "type": "string",
          "formats": [
            "date",
            "date-time"
          ],
          "required": false,
          "description": {
            "en": "Due: a date, or a date and time (RFC 8984 due)"
          }
        },
        {
          "name": "completedAt",
          "iri": "https://datamodels.jp/ns/task/completedAt",
          "ngsiType": "Property",
          "type": "string",
          "format": "date-time",
          "required": false,
          "description": {
            "en": "When progress became completed"
          }
        },
        {
          "name": "estimatedDuration",
          "iri": "https://datamodels.jp/ns/task/estimatedDuration",
          "ngsiType": "Property",
          "type": "string",
          "required": false,
          "description": {
            "en": "Estimated effort as an ISO 8601 duration, e.g. PT1H30M (RFC 8984 estimatedDuration)"
          }
        },
        {
          "name": "percentComplete",
          "iri": "https://datamodels.jp/ns/task/percentComplete",
          "ngsiType": "Property",
          "type": "integer",
          "required": false,
          "description": {
            "en": "Completion 0 to 100 (RFC 8984 percentComplete)"
          }
        },
        {
          "name": "keywords",
          "iri": "https://schema.org/keywords",
          "ngsiType": "Property",
          "type": "array",
          "items": {
            "type": "string"
          },
          "required": false,
          "description": {
            "en": "Keywords or labels"
          }
        },
        {
          "name": "location",
          "iri": "https://uri.etsi.org/ngsi-ld/location",
          "ngsiType": "GeoProperty",
          "type": "object",
          "required": false,
          "description": {
            "en": "Location as any GeoJSON geometry: point, line, polygon or a collection"
          }
        },
        {
          "name": "spatialId",
          "iri": "https://datamodels.jp/ns/task/spatialId",
          "ngsiType": "Property",
          "type": "array",
          "items": {
            "type": "string"
          },
          "required": false,
          "description": {
            "en": "Spatial IDs (ZFXY) covering the task. Optional"
          }
        },
        {
          "name": "isPrivate",
          "iri": "https://datamodels.jp/ns/task/isPrivate",
          "ngsiType": "Property",
          "type": "boolean",
          "required": false,
          "description": {
            "en": "true when private; default false"
          }
        },
        {
          "name": "source",
          "iri": "https://smart-data-models.github.io/data-models/terms.jsonld#/definitions/source",
          "ngsiType": "Property",
          "type": "string",
          "format": "uri",
          "required": false,
          "description": {
            "en": "URL of this object in the system of record"
          }
        },
        {
          "name": "externalId",
          "iri": "https://datamodels.jp/ns/task/externalId",
          "ngsiType": "Property",
          "type": "string",
          "required": false,
          "description": {
            "en": "Identifier in the system of record"
          }
        },
        {
          "name": "dateCreated",
          "iri": "https://smart-data-models.github.io/data-models/terms.jsonld#/definitions/dateCreated",
          "ngsiType": "Property",
          "type": "string",
          "format": "date-time",
          "required": false,
          "description": {
            "en": "Creation time in the system of record (distinct from the broker attribute createdAt)"
          }
        },
        {
          "name": "dateModified",
          "iri": "https://smart-data-models.github.io/data-models/terms.jsonld#/definitions/dateModified",
          "ngsiType": "Property",
          "type": "string",
          "format": "date-time",
          "required": false,
          "description": {
            "en": "Last modification time in the system of record"
          }
        }
      ],
      "aliasOf": "https://datamodels.jp/ns/task/Task",
      "extends": [
        {
          "typeIri": "https://datamodels.jp/ns/task/Task",
          "version": "1.0.0",
          "index": "https://datamodels.jp/catalog.json"
        }
      ]
    }
  ]
}
