Create a ruleset
Creates a named set of rules. ruleIds may be empty — a ruleset a merchant is still assembling is a legitimate state. Creating one with isDefault: true DEMOTES the current default in the same step rather than being refused: « the default is this one now » is what the operator meant, and refusing would leave them to unset the old one by hand and race themselves. Exactly one default exists at any moment, enforced by a unique index and not by application code.
Authorizations
Authorization: Bearer <token>. Accepts EITHER a Keycloak access token (scopes-in-token) OR an opaque POS session token; both resolve to the same pos.* scope vocabulary the route guards enforce.
Body
Response
The ruleset as persisted, at version 1.
The ruleset as persisted, at version 1.

