Guest profile
Reusable context about a Guest: prompted sections, notes and pinned places.
Source reference details
The source snapshot pins the input files; the schema profile identifies their reading context.
- Schema profile
- zendo@0.5.0
p-f00751fd5cb933c54668c32e99fa66a3dce99f6f08b38a992dbc1f0e955565c2 - Source snapshot
s-be6ad60eee907ae2864ca8fddf0a8713fad1eb380b06ae299ccaec241238e6d2
- Revision
d-520c55663c6cc2f65d232daa912e7aa2a9e313235bf157e39625b68ed9b1aead- Occurrence
o-b660a0390a4beedd8f72e4ca376f7802bddbeceba32078613c81252d9a2e89a1- Existing IRI
urn:zendo:concierge:v1#GuestProfile- Producer state
- Prototype
- Website state
- viewer-source-not-published
- Attribution
- Unknown. Source association is not authorship or approval.
- Identity
- guestProfile.profileId; guestId points to Guest. id remains the legacy guest-ID alias.
- Owner
- Concierge-maintained context with attributed contributions; no authenticated guest editor is simulated.
Fields 10
| Field | Contract |
|---|---|
schemaRequired | "zendo.guest-profile/v1"Schema constraints{
"const": "zendo.guest-profile/v1"
} |
idRequired | stringStable record ID; on Guest Profile, the legacy guest-ID alias. Schema constraints{
"type": "string",
"maxLength": 120
} |
revisionRequired | integerRecord-local revision; distinct from the workspace version. Schema constraints{
"type": "integer",
"minimum": 1
} |
nameRequired | stringGuest-selected or concierge-entered display identity. Schema constraints{
"type": "string",
"minLength": 1,
"maxLength": 100
} |
companyOptional | stringOptional organisation display text; no directory membership is implied. Schema constraints{
"type": "string",
"maxLength": 100
} |
notesRequired | stringOrdinary freeform notes in the owning record. Schema constraints{
"type": "string",
"maxLength": 2000
} |
preferencesRequired | stringEnduring interests and routines; soft retrieval context. Schema constraints{
"type": "string",
"maxLength": 4000
} |
profileIdOptional | stringIdentity of the reusable profile record. Schema constraints{
"type": "string"
} |
guestIdOptional | stringThe Guest this record concerns. Schema constraints{
"type": "string"
} |
chunksOptional | arrayPrompted topic responses with source, revision and contribution history. Schema constraints{
"type": "array",
"maxItems": 7,
"items": {
"$ref": "#/$defs/ProfileChunk"
}
} |
Scope & rules
- A profile describes one Guest. Profile chunks describe topics; they are not new identity classes.
- Company is optional; notes are ordinary freeform notes.
- Guest-provided, concierge-observed and agent-suggested are sources, not separate profile types.
- Profile context informs matching. Hard trip requirements require an explicit brief edit.
- Pinned places are places the guest specifically likes; relevant places belong to a trip brief.
- Profile edits preserve the active brief, recommendations, selection and draft.
- Guest-only confirmation remains unavailable until a verified guest session exists.
Relationships
Pinned source artifacts
catalog.json ↗fc80ccf855bd99b377839827180548c8377ea0e0719447f9f132529a913af102
zendo.schema.json ↗82ba5825bccaa5c7d3b7bde8fb47597e41e88edda4dec18cded8063952219278
devgraph.ontology.json ↗afd935f58e1a0ec2af090cf4d09f5e14a83c62e1280d96390d2ec2a75d648c95
Exact source node
{
"id": "guest-profile",
"label": "Guest profile",
"kind": "Record",
"group": "People & trips",
"description": "Reusable context about a Guest: prompted sections, notes and pinned places.",
"iri": "urn:zendo:concierge:v1#GuestProfile",
"fields": [
{
"name": "schema",
"type": "\"zendo.guest-profile/v1\"",
"required": true,
"schema": {
"const": "zendo.guest-profile/v1"
}
},
{
"name": "id",
"type": "string",
"required": true,
"description": "Stable record ID; on Guest Profile, the legacy guest-ID alias.",
"schema": {
"type": "string",
"maxLength": 120
}
},
{
"name": "revision",
"type": "integer",
"required": true,
"description": "Record-local revision; distinct from the workspace version.",
"schema": {
"type": "integer",
"minimum": 1
}
},
{
"name": "name",
"type": "string",
"required": true,
"description": "Guest-selected or concierge-entered display identity.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
{
"name": "company",
"type": "string",
"required": false,
"description": "Optional organisation display text; no directory membership is implied.",
"schema": {
"type": "string",
"maxLength": 100
}
},
{
"name": "notes",
"type": "string",
"required": true,
"description": "Ordinary freeform notes in the owning record.",
"schema": {
"type": "string",
"maxLength": 2000
}
},
{
"name": "preferences",
"type": "string",
"required": true,
"description": "Enduring interests and routines; soft retrieval context.",
"schema": {
"type": "string",
"maxLength": 4000
}
},
{
"name": "profileId",
"type": "string",
"required": false,
"description": "Identity of the reusable profile record.",
"schema": {
"type": "string"
}
},
{
"name": "guestId",
"type": "string",
"required": false,
"description": "The Guest this record concerns.",
"schema": {
"type": "string"
}
},
{
"name": "chunks",
"type": "array",
"required": false,
"description": "Prompted topic responses with source, revision and contribution history.",
"schema": {
"type": "array",
"maxItems": 7,
"items": {
"$ref": "#/$defs/ProfileChunk"
}
}
}
],
"rules": [
"A profile describes one Guest. Profile chunks describe topics; they are not new identity classes.",
"Company is optional; notes are ordinary freeform notes.",
"Guest-provided, concierge-observed and agent-suggested are sources, not separate profile types.",
"Profile context informs matching. Hard trip requirements require an explicit brief edit.",
"Pinned places are places the guest specifically likes; relevant places belong to a trip brief.",
"Profile edits preserve the active brief, recommendations, selection and draft.",
"Guest-only confirmation remains unavailable until a verified guest session exists."
],
"facts": [
{
"label": "Identity",
"value": "guestProfile.profileId; guestId points to Guest. id remains the legacy guest-ID alias."
},
{
"label": "Owner",
"value": "Concierge-maintained context with attributed contributions; no authenticated guest editor is simulated."
}
],
"links": [
{
"label": "pins place",
"target": "context-reference",
"note": "1 → 0..*"
},
{
"label": "describes",
"target": "guest",
"note": "1 → 1"
},
{
"label": "has topic response",
"target": "profile-chunk",
"note": "1 → 0..*"
}
]
}