Appendix B — Real Estate NATS JetStream KV Lookups
Status: Reference
Sources:datasets/lookups/(existing lookup schema patterns), AGENTS.md — Sovereign OS / Cosmic Circuit mandate 4
All real estate 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 Real Estate
| Lookup Key | Purpose | Real Estate Use |
|---|---|---|
lookup.claims.threshold.v1 | Quorum threshold VALUES by claim type | Service-charge rate approval, defect escalation |
lookup.claims.threshold.procurement.v1 | Procurement amount bands → quorum + approver roles | Maintenance contractor PO approval |
lookup.claims.sod.v1 | Separation-of-duties rules by claim type | Defect inspector ≠ contractor; charge issuer ≠ collector |
lookup.claims.sla.v1 | SLA bindings to Kestra | Defect response SLA, arrears escalation cadence |
lookup.claims.evidence.v1 | Evidence requirements | Photo evidence for defects, snags, move-out |
lookup.claims.panel.v1 | Approver panels / role lists | Named approvers per tier (finance, HOA board) |
lookup.claims.transition_policy.v1 | Stage transition policy | Claim lifecycle stages per real-estate claim type |
lookup.claims.outbox_subjects.v1 | Outbox subject keys | NATS subjects for real-estate playbook events |
lookup.entity.indexability.entity.building.v1 | Indexability for building/space entities | Unit and common-area resolution |
2. Real Estate-Specific Lookups to Declare
These are proposed real estate lookups (values bind at wiring time; no rates/counts/prices invented here):
| Lookup Key (proposed) | Purpose | Example Value Shape |
|---|---|---|
lookup.real-estate.sale.policy.v1 | Sale rules (holding period, deposit %, handover conditions) | {holding_period_days: 14, deposit_percent: 10} |
lookup.real-estate.lease.policy.v1 | Lease rules (deposit, renewal notice, grace period) | {deposit_months: 2, renewal_notice_days: 60} |
lookup.real-estate.service-charge.rates.v1 | Service-charge rate bands by unit type/size | {studio: X, one_bed: Y, two_bed: Z} |
lookup.real-estate.defect.severity.v1 | Defect severity bands and response SLAs | {P1: emergency_24h, P2: urgent_72h, P3: routine_7d} |
lookup.real-estate.amenity.rules.v1 | Amenity booking rules (slot length, guest limits) | {slot_minutes: 60, max_guests: 2} |
lookup.real-estate.access.levels.v1 | Access levels per role | {owner: full, tenant: unit+amenities, visitor: host_unit_only} |
lookup.real-estate.escalation.ladder.v1 | Arrears / defect escalation ladder | {level1: reminder, level2: notice, level3: legal} |
Values, thresholds, cadences, rates, and prices are UNKNOWN in this document and must bind from governed NATS KV at wiring time. No real-estate-specific rates, counts, or prices are hardcoded.
3. Declaration Pattern (offline seed)
json
{
"schema_id": "lookup.real-estate.service-charge.rates.v1",
"version": "1.0.0",
"canonical_subject": "platform.criteria.v1.real-estate.service-charge",
"canonical_event_type": "charge_rate_definition",
"pipeline_id": "pipe:jijibora:real-estate:service-charge",
"rate_bands": {
"studio": {"amount": "UNKNOWN", "currency": "KES"},
"one_bedroom": {"amount": "UNKNOWN", "currency": "KES"},
"two_bedroom": {"amount": "UNKNOWN", "currency": "KES"}
}
}Seeded to SOVEREIGN_LOOKUPS via scripts/seed-nats-kv-declarative.mjs; runtime reads KV only.