Behaviours (consumption rule sets) module — JetSetGo MCP reference
The behaviours module defines consumption rule sets — the configuration that determines, for every resource bound to a rule set, which passenger or vehicle fare items are bookable, how much capacity each fare category consumes, whether boarding is capacity-controlled or ticket-controlled, and what ticket conditions (wallet/pass rules) apply. Every resource points at exactly one rule set by id, making this the load-bearing configuration choice in the booking pipeline.
What the operator uses it for
An operator authors a rule set once and binds many resources to it. Within one rule set they configure: which passenger/vehicle types may be booked (optionally forcing one per reservation), which specific fare categories apply, per-category consumption rules, the boarding method, which inventory pools the availability display highlights, booking cutoff hours before departure, and a deposit percentage. Ticket conditions attach wallet/pass requirements to individual fare categories.
The specify_sub_types switch controls granularity: when enabled, each fare category needs its own consumption rule; otherwise type-level eligibility alone governs.
Where it sits
Upstream reference data: fare items and their categories (pattypes), inventory pools (tracks), and limit types. Downstream: every resource references exactly one rule set via its behaviour_id; scheduling reads the boarding method and accommodation flags; and the booking/cancellation flow resolves rule set → consumption rule at allocate/release time to decide how much capacity each unit draws from an inventory pool. Because resources depend on it, changing a rule set affects all referencing resources.
Key concepts
- Consumption rule set ("behaviour") — the rulebook bound to each resource.
- Fare item eligibility — which passenger or vehicle types are bookable under this rule set, with an optional
force_one_per_reservationrestriction. - Fare category ("PAT sub-type") — the atomic bookable kind (Adult, Child, Car, …); consumption is configured per category.
- Consumption rule — how much capacity a fare category uses: either drawn against an inventory pool or checked against a limit type — exactly one of the two, never both.
- Boarding method —
'ticket'(a redeemable pass rather than a capacity slot) versus'sequence'(capacity-controlled boarding following a named boarding sequence). - Ticket condition — wallet/pass rules attached to a fare category within the rule set.
- Highlighted pools (
highlight_track) — JSON array of inventory-pool ids the availability display emphasises. - Booking cutoff / deposit — hours before departure after which booking closes, and the deposit as a decimal fraction (
0.3= 30%).
Tools
All writes are two-phase (preview returns a previewToken; confirm executes). Batch add tools insert multiple rows in one guarded call and return created ids.
| Tool | Class | Purpose |
|---|---|---|
behaviours_list_behaviours |
Read | List rule sets with optional status filter (includes boarding-sequence name where tracked). |
behaviours_get_behaviour |
Read | Fetch one rule set by id. |
behaviours_list_behaviour_pat_types |
Read | List the fare-item types made bookable by a rule set. |
behaviours_list_behaviour_pat_sub_types |
Read | List the fare categories included in a rule set. |
behaviours_list_consumption_rules |
Read | List per-category consumption rules (pool XOR limit, units). |
behaviours_list_ticket_conditions |
Read | List ticket conditions attached to categories in a rule set. |
behaviours_save_behaviour |
Guarded write | Create (requires name, boarding method, cutoff hours) or update a rule set. |
behaviours_deactivate_behaviour |
Guarded write (destructive) | Soft-delete via status=inactive — no hard delete exists. |
behaviours_add_pat_types |
Guarded write | Batch-add fare-item types (pat_type_id, force_one_per_reservation). |
behaviours_remove_pat_type |
Guarded write (destructive) | Remove a fare-item-type row. |
behaviours_add_pat_sub_types |
Guarded write | Batch-add fare categories. |
behaviours_remove_pat_sub_type |
Guarded write (destructive) | Remove a fare-category row. |
behaviours_add_consumption_rules |
Guarded write | Batch-add consumption rules (category + pool XOR limit + units > 0 + modifiable flag). |
behaviours_remove_consumption_rule |
Guarded write (destructive) | Remove a consumption rule. |
behaviours_add_ticket_conditions |
Guarded write | Batch-add ticket conditions (category → ticket-condition link). |
behaviours_remove_ticket_condition |
Guarded write (destructive) | Remove a ticket-condition link. |
Rules worth knowing
- Create requirements are strict. A new rule set requires
name,boarding_method, andbooking_cutoff_hours. Whenboarding_method='sequence', aboarding_sequence_idmust also be supplied — the tool rejects the combination without it. - Soft delete only. Deactivation sets
status=inactive; by design a deactivated rule set makes its referencing resources non-bookable, so deactivation has product-wide consequences. - Rule-set changes propagate across related records only in effect, not retroactively. Existing bookings keep the consumption behaviour they were created under; new bookings follow the edited rules.
- XOR constraint on consumption. Each consumption rule specifies exactly one of an inventory pool id or a limit type id, never both;
consumption_unitsmust be greater than zero. highlight_trackis stored as a JSON array of inventory-pool ids and supplied to the tool as a plain array of numbers.- Deposit percentages are decimal fractions — pass
0.3for 30%. - Child rows are managed as batches. The four child collections (eligible types, eligible categories, consumption rules, ticket conditions) have no independent update tool: remove the row and re-add, or add additional rows in bulk.
- Accommodation flags (
accommodation,parking,accommodated_cruise,hotel_accommodation) are boolean switches recorded on the rule set and read downstream by scheduling; their runtime effects are designed capability documented here, not separately verified in this reference.
Related modules
- Resources — binds exactly one rule set per resource via
behaviour_id. - Fare items (passenger & vehicle types) — supplies the types and categories the rule set makes bookable.
- Inventory tracks — the inventory pools consumption rules draw down against.
- Pricing — prices the fare categories whose consumption a rule set defines.
