§B — PURE decision for the create-tables/RSU table+column caps. Returns a list of human-readable
violation messages (empty = within limits). These caps are OPERATOR/env guardrails (a user must not be
able to raise their own cap via the same API they apply with). Over-limit is REJECTED, never truncated.
null caps mean unbounded (the default), so the common case returns []. Pure ⇒ unit-testable without the
resolver/DB; the resolver builds the input from the selection and throws if this returns any violation.
§B — PURE decision for the create-tables/RSU table+column caps. Returns a list of human-readable violation messages (empty = within limits). These caps are OPERATOR/env guardrails (a user must not be able to raise their own cap via the same API they apply with). Over-limit is REJECTED, never truncated.
nullcaps mean unbounded (the default), so the common case returns []. Pure ⇒ unit-testable without the resolver/DB; the resolver builds the input from the selection and throws if this returns any violation.