Skip to main content

Constraints

Constraints govern valid inputs and execution conditions. They MUST be declared in annotations, not hidden in client-side validation logic.

Value Constraints

Applied to individual parameters: type, format, range, pattern, enum, length.

Relational Constraints

Relationships between parameters: mutual exclusion, conditional requirements, dependencies.

Execution Constraints

State requirements: preconditions, rate limits, cooldown periods, temporal windows.

Declaration Example

<button
axag-intent="booking.create"
axag-entity="reservation"
axag-action-type="create"
axag-required-parameters='["check_in","check_out","guests"]'
axag-constraints='{"check_out_after_check_in": "check_out > check_in", "max_guests": "guests <= 10"}'
axag-preconditions='["room_available"]'
>
Book Room
</button>