{
  "enumDefs": [],
  "structDefs": [],
  "classificationDefs": [],
  "entityDefs": [
    {
      "name": "PropertyFacet",
      "description":"Property facets allow any entity to be extended with additional properties. This is particularly useful for storing metadata that originated in another type of metadata repository, or tool since it allows vendor/tool specific values to be stored.",
      "superTypes": [
        "Referenceable"
      ],
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name": "version",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true,
          "isUnique": false
        },
        {
          "name": "description",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true,
          "isUnique": false
        },
        {
          "name": "organization",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true,
          "isUnique": false
        },
        {
          "name": "properties",
          "typeName": "map<string,string>",
          "cardinality": "SINGLE",
          "isOptional": true,
          "isUnique": false
        }
      ]
    }
  ],
  "relationshipDefs": [
    {
      "name": "ReferenceableFacets",
      "description":"The link between the additional (custom) properties and the entity.",
      "typeVersion": "1.0",
      "endDef1": {
        "name": "additionalProperties",
        "type": "PropertyFacet",
        "cardinality": "SET",
        "isContainer": true
      },
      "endDef2": {
        "name": "relatedEntity",
        "type": "Referenceable",
        "cardinality": "SINGLE"
      },
      "relationshipCategory": "COMPOSITION",
      "attributeDefs": [
        {
          "name": "source",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true,
          "isUnique": false
        }
      ]
    }
  ]
}
