Appendix B — Hotel NATS JetStream KV Lookups
Status: Reference
Sources:datasets/lookups/(existing lookup schema patterns), AGENTS.md — Sovereign OS / Cosmic Circuit mandate 4 (no filesystem reads at runtime; KV seeded offline viascripts/seed-nats-kv-declarative.mjs)
All hotel configuration lives in NATS JetStream KV buckets (SOVEREIGN_LOOKUPS, SOVEREIGN_SCENARIOS, SOVEREIGN_TEMPLATES). The files under datasets/lookups/ are offline seed sources only.
1. Existing Lookup Patterns Reused by Hotels
| Lookup Key | Purpose | Hotel Use |
|---|---|---|
lookup.claims.threshold.v1 | Quorum threshold VALUES by claim type | Folio adjustment, PO approval tiers |
lookup.claims.threshold.procurement.v1 | Procurement amount bands → quorum + approver roles | F&B requisition approval routing |
lookup.claims.sod.v1 | Separation-of-duties rules by claim type | Housekeeping (cleaner≠inspector), dual control |
lookup.claims.sla.v1 | SLA bindings to Kestra | Housekeeping turnaround SLA, fault response SLA |
lookup.claims.evidence.v1 | Evidence requirements | Photo evidence for housekeeping/maintenance/incident |
lookup.claims.panel.v1 | Approver panels / role lists | Named approvers per tier |
lookup.claims.transition_policy.v1 | Stage transition policy | Claim lifecycle stages per hotel claim type |
lookup.claims.outbox_subjects.v1 | Outbox subject keys | NATS subjects for hotel playbook events |
lookup.entity.indexability.entity.building.v1 | Indexability for building/space entities | Room & function space resolution |
lookup.camel.intake.maps.v1 | Camel intake route maps | External webhook → claim mapping |
2. Hotel-Specific Lookups to Declare
These are proposed hotel lookups (values bind at wiring time; no rates/counts/prices invented here):
| Lookup Key (proposed) | Purpose | Example Value Shape |
|---|---|---|
lookup.hotel.reservation.policy.v1 | Reservation rules (deposit, cancellation, hold window) | {deposit_required: true, hold_window_min: 15} |
lookup.hotel.housekeeping.checklist.v1 | Room turnover checklist items | {items: [linens, amenities, sanitization]} |
lookup.hotel.maintenance.priority.v1 | Fault priority bands | {P1: emergency, P2: urgent, P3: routine} |
lookup.hotel.event.space.v1 | Function space capacity & constraints | {capacity: 200, fnb_minimum: true} |
lookup.hotel.approval.tiers.v1 | Approval tier thresholds | {TIER_1_AUTO: <KES X, TIER_2_MANAGEMENT: ...} |
lookup.hotel.escalation.ladder.v1 | Incident escalation ladder | {level1: security_desk, level2: gm, level3: regional} |
lookup.hotel.room.status.v1 | Room status vocabulary | {VACANT_DIRTY, VACANT_CLEAN, OCCUPIED, OUT_OF_ORDER} |
Values, thresholds, cadences, and prices are UNKNOWN in this document and must bind from governed NATS KV at wiring time. No hotel-specific rates, counts, or prices are hardcoded.
3. Declaration Pattern (offline seed)
{
"schema_id": "lookup.hotel.housekeeping.checklist.v1",
"version": "1.0.0",
"canonical_subject": "platform.criteria.v1.housekeeping.checklist",
"canonical_event_type": "checklist_definition",
"pipeline_id": "pipe:jijibora:hotel:housekeeping",
"checklist": {
"room_turnover": ["stripped_linen", "fresh_linen", "amenities_stocked", "surfaces_sanitized", "inspection_ready"]
}
}Seeded to SOVEREIGN_LOOKUPS via scripts/seed-nats-kv-declarative.mjs; runtime reads KV only.