{
  "id": "PS-003",
  "name": "describe PermissionSet emits Permissions<X> virtual field descriptors",
  "description": "The frontend's Permission Analyzer (users.ts getSystemPermissionFields) calls describe(PermissionSet) then filters f.name.startsWith('Permissions') && f.type === 'boolean'. Post-P6 the physical columns are gone; post-P11 the describe handler synthesizes one boolean field descriptor per active _System_Permission row. This case verifies the describe response includes Permissions<X> fields with type=boolean so the frontend pattern still works.",
  "method": "GET",
  "endpoint": "/services/data/v63.0/sobjects/PermissionSet/describe",
  "expects": {
    "status_code": 200,
    "body_assertions": [
      {"path": "fields[?(@.name == 'PermissionsViewSetup')].type", "operator": "eq", "value": "boolean"},
      {"path": "fields[?(@.name == 'PermissionsViewSetup')].permissionable", "operator": "eq", "value": true},
      {"path": "fields[?(@.name == 'PermissionsApiEnabled')].type", "operator": "eq", "value": "boolean"},
      {"path": "fields[?(@.name == 'PermissionsModifyAllData')].type", "operator": "eq", "value": "boolean"}
    ]
  },
  "priority": "P0",
  "scene": "permission_set"
}
