{
  "type": "tradle.Model",
  "id": "tradle.Object",
  "title": "Object",
  "description": "the base Object model from which all inherit",
  "abstract": true,
  "properties": {
    "_t": {
      "type": "string",
      "readOnly": true,
      "immutable": true,
      "description": "the instance type"
    },
    "_s": {
      "type": "string",
      "readOnly": true,
      "immutable": true,
      "description": "signature",
      "sample": "sig"
    },
    "_w": {
      "type": "array",
      "readOnly": true,
      "immutable": true,
      "description": "witness signatures",
      "sample": "sigs",
      "items": {
        "properties": {
          "a": {
            "type": "string",
            "sample": "hash",
            "description": "author identity permalink"
          },
          "s": {
            "type": "string",
            "sample": "sig",
            "description": "signature"
          }
        }
      }
    },
    "_r": {
      "type": "string",
      "readOnly": true,
      "immutable": true,
      "description": "the link to the original version of this object (permalink)",
      "sample": "hash"
    },
    "_p": {
      "type": "string",
      "immutable": true,
      "readOnly": true,
      "description": "the link to the previous version of this object",
      "sample": "hash"
    },
    "_ph": {
      "type": "string",
      "immutable": true,
      "readOnly": true,
      "description": "previous header merkle root",
      "sample": "hash"
    },
    "_v": {
      "type": "number",
      "readOnly": true,
      "immutable": true,
      "description": "object version number",
      "sample": "random.number"
    },
    "_z": {
      "type": "string",
      "readOnly": true,
      "immutable": true,
      "description": "nonce",
      "sample": "hash"
    },
    "_o": {
      "type": "string",
      "readOnly": true,
      "immutable": true,
      "description": "owner",
      "sample": "hash"
    },
    "_time": {
      "type": "date",
      "readOnly": true,
      "immutable": true,
      "sample": "timestamp.recent"
    },
    "_author": {
      "type": "string",
      "readOnly": true,
      "description": "this object author's identity's permalink",
      "sample": "hash"
    },
    "_org": {
      "type": "string",
      "readOnly": true,
      "immutable": true,
      "description": "this author organization's identity's permalink",
      "sample": "hash"
    },
    "_orgsig": {
      "type": "string",
      "readOnly": true,
      "immutable": true,
      "description": "this author organization's signature",
      "sample": "sig"
    },
    "_link": {
      "type": "string",
      "virtual": true,
      "readOnly": true,
      "sample": "hash"
    },
    "_prevlink": {
      "type": "string",
      "virtual": true,
      "readOnly": true,
      "sample": "hash"
    },
    "_permalink": {
      "type": "string",
      "virtual": true,
      "readOnly": true,
      "sample": "hash"
    },
    "_seal": {
      "type": "object",
      "ref": "tradle.Seal",
      "readOnly": true,
      "immutable": true,
      "inlined": true,
      "virtual": true
    },
    "_cut": {
      "type": "array",
      "virtual": true,
      "readOnly": true,
      "items": {
        "type": "string"
      }
    },
    "_displayName": {
      "type": "string",
      "virtual": true,
      "readOnly": true
    },
    "_sigPubKey": {
      "type": "string",
      "virtual": true,
      "readOnly": true,
      "sample": "hash"
    }
  },
  "required": [
    "_t",
    "_s",
    "_time",
    "_author"
  ]
}
