ecr: ECR-014 capability: CommerceEntitlement bounded_context: Membership_Orders parent: WAVE0-FROZEN predecessor: ECR-013B change: type: additive breaking_change: false migration_required: true compatibility_notes: > New membership_plans table seeded with month/quarter/year. Grant/CreateOrder read duration/amount from table with hardcoded fallback. Additive RBAC permissions. entities: - name: MembershipPlan before: null after: fields: [code, title, duration_days, amount_cents, active, updated_at] codes: [month, quarter, year] apis: - method: GET path: /api/v1/admin/membership-plans change: added - method: GET path: /api/v1/admin/membership-plans/{code} change: added - method: PUT path: /api/v1/admin/membership-plans/{code} change: added security_impact: - "admin.membership.plans.read/write" observability_impact: - "AuditLog membership.plans.update"