export interface CapabilityDefinition {
  id: `CAP-${string}`;
  gates: `MR-${string}`[];
  name: string;
  smoke?: boolean;
  droppedReason?: string;
}

export const CAPABILITIES: CapabilityDefinition[] = [
  { id: 'CAP-01', gates: ['MR-04'], name: 'synchronous translation returns exact character usage', smoke: true },
  { id: 'CAP-02', gates: ['MR-04', 'MR-08'], name: 'async jobs submit, poll, and deliver signed callbacks', smoke: true },
  { id: 'CAP-03', gates: ['MR-04'], name: 'character estimate' },
  { id: 'CAP-04', gates: ['MR-04'], name: 'exception dictionary push and pull' },
  { id: 'CAP-05', gates: ['MR-04', 'MR-09'], name: 'site registration enforces seat cap', smoke: true },
  { id: 'CAP-06', gates: ['MR-04', 'MR-09'], name: 'site heartbeat and idempotent deactivation' },
  { id: 'CAP-07', gates: ['MR-04'], name: 'plan listing' },
  { id: 'CAP-08', gates: ['MR-04'], name: 'legacy account registration and login', droppedReason: 'Replaced by platform session login plus OAuth2 authorization-code/PKCE connect flow.' },
  { id: 'CAP-09', gates: ['MR-04'], name: 'legacy mock checkout and upgrade', droppedReason: 'Non-production mock purchase paths replaced by real subscription creation and OAuth credential provisioning.' },
  { id: 'CAP-10', gates: ['MR-04', 'MR-10'], name: 'checkout initiation and duplicate-payment idempotency' },
  { id: 'CAP-11', gates: ['MR-04'], name: 'checkout completion polling', droppedReason: 'Polling removed; PayPal webhooks update subscription state and OAuth token exchange provisions credentials.' },
  { id: 'CAP-12', gates: ['MR-04', 'MR-09'], name: 'license lifecycle' },
  { id: 'CAP-13', gates: ['MR-04'], name: 'plugin update check' },
  { id: 'CAP-14', gates: ['MR-04'], name: 'health probe', smoke: true },
  { id: 'CAP-15', gates: ['MR-04', 'MR-05'], name: 'valid and invalid credential authentication', smoke: true },
  { id: 'CAP-16', gates: ['MR-04', 'MR-05', 'MR-21'], name: 'revocation and plugin entitlement enforcement' },
  { id: 'CAP-17', gates: ['MR-04', 'MR-07', 'MR-21'], name: 'wallet debit and insufficient-credit rejection', smoke: true },
  { id: 'CAP-18', gates: ['MR-04', 'MR-06'], name: 'rate limiting carries Retry-After and tolerates bulk bursts' },
];
