Docs / Domain mappings / records

Records

A host that holds payments, encounters, catalog rows, or case files is Rig when it emits entities with POD components keyed by schema ids it supports (honors). Search engines, vector stores, and message parsers are fulfillments. The index is not this catalog.

Portable meaning is rig.record.* plus the finance, clinic, commerce, and law components those compose. Product names stay out of schema ids. There is no rig.fhir.*, rig.pacs.*, rig.dicom.*, or rig.gs1.*.

Shared record

Fact Rig
Perimeter and retention rig.record.mark
Who stated it, and when rig.record.assertion
Happening with no magnitude rig.record.event plus rig.calendar.event
Grant, refusal, or withdrawal rig.record.consent plus rig.calendar.span
File about a subject rig.record.case
Reported happening in the world rig.record.incident
This fact belongs to a file rig.record.concerns
A note about a fact rig.record.note

Members point at the file. The case and the incident hold no arrays. The file's document.author stays the file. Join keys live on the noun.

A time of day composes rig.calendar.event. startSecond orders happenings that share a minute. Do not invent a second timestamp type.

Financial services

Fact Rig
Party and cash account rig.person.* / rig.organisation.identity / rig.party.account
Amount rig.commerce.price
Movement rig.finance.payment
Holding rig.finance.position (isin is ISO 6166)
Policy rig.legal.agreement kind insurance
Claim rig.finance.claim
Fraud or AML file rig.record.case kind fraud / aml

Example: examples/record-bank.json.

Healthcare and life sciences

Fact Rig
Person ids rig.person.identifier (mrn, taxId, nationalId, passport)
Visit or admission rig.clinic.encounter
Measurement rig.clinic.observation
Imaging study rig.clinic.study (studyUid / seriesUid)
Trial rig.clinic.trial
Eligibility row rig.clinic.criterion
Consent rig.record.consent

A measurement is an observation. Do not also attach rig.record.event. Pixels stay on the asset file.

Example: examples/record-care.json.

Retail

Session memory and the embedding index stay in the host.

Example: examples/record-shop.json.

Public sector

Fact Rig
Person ids rig.person.identifier
Citizen case rig.record.case kind service / benefits
Statute rig.law.statute
Incident rig.record.incident
Responder fix rig.sensor.gnss plus rig.place.geo plus rig.record.concerns

Example: examples/record-civic.json.

Encodings (fulfillment)

File Role
ISO 20022 pacs.* / pain.* / camt.* Map into / out of rig.finance.payment + party / account / price
FHIR Bundle / resource Map Encounter, Observation, Consent, ResearchStudy
DICOM Map Study / Series UID onto rig.clinic.study; pixels stay the file
GS1 / GTIN catalog Map onto rig.commerce.product + offer + stock
Case-management export Map onto rig.record.case + concerns

Do not put query explain-plans, vector embeddings, or RBAC tables in portable components - those are the engine.

Stay out

Stay out Why
Hybrid search, Elasticsearch wire, per-query explain The engine. Two hosts share the record, not the index
Tenant isolation, customer-managed keys, air-gap binary Deployment posture
Generic system + value identifier bags Join keys live on the noun
Medication, lab panels, trade tickets Not a shared field set yet
rig.fhir.* / rig.pacs.* / rig.dicom.* / rig.gs1.* Product and message names stay out of schema ids