# OrderLoyalty

object type

The loyalty attach. redeemPoints ABSENT = attach-for-EARN-only; PRESENT = the redemption request the position-4 evaluation converts to source=loyalty LINE entries (pre-tax — the / taxonomy law: loyalty is a DISCOUNT, never a tender). SALE-profile only; re-validated on EVERY engine run and at PLACE (commit truth).

## Fields

| Field | Type | Notes |
| --- | --- | --- |
| `memberId` | [ID](/types/#scalars) `ID!` | The attached LoyaltyMember — tenant/program/currency-gated at the seam. |
| `redeemPoints` | [Int](/types/#scalars) | The redemption request in points (≤ the member balance — CONFLICT/INSUFFICIENT_POINTS names live figures). |
