[
  {
    "apiName": "OpportunityContactRole",
    "keyPrefix": "00K",
    "label": "Opportunity Contact Role",
    "tableType": "standard_object",
    "category": "crm",
    "sharingModel": "ControlledByParent",
    "enableHierarchySharing": false,
    "description": "Standard Salesforce Opportunity Contact Role object; record-level access cascades from Opportunity while object and field access are derived from Opportunity and Contact permissions.",
    "accessPolicy": {
      "mode": "derived",
      "objectRead": {
        "allOf": [
          {
            "kind": "objectPermission",
            "object": "Opportunity",
            "operation": "Read"
          },
          {
            "kind": "objectPermission",
            "object": "Contact",
            "operation": "Read"
          }
        ]
      },
      "objectCreate": {
        "allOf": [
          {
            "kind": "objectPermission",
            "object": "Opportunity",
            "operation": "Edit"
          },
          {
            "kind": "objectPermission",
            "object": "Contact",
            "operation": "Read"
          }
        ]
      },
      "objectEdit": {
        "allOf": [
          {
            "kind": "objectPermission",
            "object": "Opportunity",
            "operation": "Edit"
          },
          {
            "kind": "objectPermission",
            "object": "Contact",
            "operation": "Read"
          }
        ]
      },
      "objectDelete": {
        "allOf": [
          {
            "kind": "objectPermission",
            "object": "Opportunity",
            "operation": "Edit"
          },
          {
            "kind": "objectPermission",
            "object": "Contact",
            "operation": "Read"
          }
        ]
      },
      "fieldRead": {
        "inherit": "objectRead"
      },
      "fieldEdit": {
        "inherit": "objectEdit"
      }
    },
    "fields": [
      {
        "apiName": "OpportunityId",
        "label": "Opportunity",
        "type": "reference",
        "required": true,
        "referenceTo": [
          "Opportunity"
        ],
        "relationshipName": "Opportunity",
        "childRelationshipName": "OpportunityContactRoles"
      },
      {
        "apiName": "ContactId",
        "label": "Contact",
        "type": "reference",
        "required": true,
        "referenceTo": [
          "Contact"
        ],
        "relationshipName": "Contact",
        "childRelationshipName": "OpportunityContactRoles"
      },
      {
        "apiName": "Role",
        "label": "Role",
        "type": "picklist",
        "options": [
          {
            "value": "Business User",
            "label": "Business User"
          },
          {
            "value": "Decision Maker",
            "label": "Decision Maker"
          },
          {
            "value": "Economic Buyer",
            "label": "Economic Buyer"
          },
          {
            "value": "Economic Decision Maker",
            "label": "Economic Decision Maker"
          },
          {
            "value": "Evaluator",
            "label": "Evaluator"
          },
          {
            "value": "Executive Sponsor",
            "label": "Executive Sponsor"
          },
          {
            "value": "Influencer",
            "label": "Influencer"
          },
          {
            "value": "Technical Buyer",
            "label": "Technical Buyer"
          },
          {
            "value": "Other",
            "label": "Other"
          }
        ]
      },
      {
        "apiName": "IsPrimary",
        "label": "Primary",
        "type": "boolean",
        "required": true,
        "default": "0"
      },
      {
        "apiName": "Champion__c",
        "type": "boolean",
        "label": "Champion",
        "default": "0"
      },
      {
        "apiName": "Comments__c",
        "type": "textarea",
        "label": "Comments"
      },
      {
        "apiName": "His_Her_Lines__c",
        "type": "textarea",
        "label": "His/Her Lines"
      },
      {
        "apiName": "Relationship__c",
        "type": "picklist",
        "label": "Stand Point",
        "options": [
          {
            "value": "Ally",
            "label": "Ally"
          },
          {
            "value": "Supporter",
            "label": "Supporter"
          },
          {
            "value": "Neutral",
            "label": "Neutral"
          },
          {
            "value": "Opponent",
            "label": "Opponent"
          }
        ]
      }
    ],
    "managedRelationships": [
      {
        "fieldApiName": "OpportunityId",
        "parentObject": "Opportunity",
        "isSharingParent": true
      }
    ]
  }
]
