{
  "manifestVersion": 1,
  "name": "delivery-time-entry",
  "description": "One immutable record of time consumed on a work package of a running delivery project, with the rate the cost policy returned and the cost computed from it. It is evidence: there is no public create, update or delete, and a correction is a new entry. It is not a timesheet, not payroll, and not an accounting cost.",
  "fields": [
    {
      "name": "sourceKey",
      "type": "string",
      "writable": "managed",
      "unique": true
    },
    {
      "name": "deliveryProjectId",
      "type": "string",
      "writable": "managed",
      "index": true
    },
    {
      "name": "deliveryWorkPackageId",
      "type": "string",
      "writable": "managed",
      "index": true
    },
    {
      "name": "contributorRef",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "contributorType",
      "type": "enum",
      "writable": "managed",
      "values": [
        "internal",
        "partner"
      ]
    },
    {
      "name": "partnerEngagementId",
      "type": "string",
      "writable": "managed",
      "index": true
    },
    {
      "name": "workDate",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "minutes",
      "type": "integer",
      "writable": "managed"
    },
    {
      "name": "category",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "ratePerHourCents",
      "type": "integer",
      "writable": "managed"
    },
    {
      "name": "costCents",
      "type": "integer",
      "writable": "managed"
    },
    {
      "name": "currency",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "rateReason",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "policy",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "policyVersion",
      "type": "integer",
      "writable": "managed"
    },
    {
      "name": "policyFingerprint",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "note",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "recordedBy",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "recordedAt",
      "type": "timestamp",
      "writable": "managed"
    }
  ]
}
