feat: add brief concept party classification
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# GUPI OSINT Board: canonical exhibit data model
|
||||
|
||||
Status: accepted design foundation; the core schema, transactional template lifecycle, frontend exhibit registry, and Event workflow are implemented. Parties remain the next model expansion.
|
||||
Status: accepted design foundation; the core schema, template lifecycle, frontend registry, Event workflow, brief concepts, and Party subtypes are implemented. Interactive Party-to-Party relationships remain roadmap work.
|
||||
|
||||
## Vocabulary
|
||||
|
||||
@@ -180,7 +180,7 @@ A deferred constraint trigger verifies that both exhibits belong to the same boa
|
||||
|
||||
In the frontend, the Event widget shows its occurrence time, narrative text, and evidence count. Opening or selecting it reveals its supporting exhibits. Lines between an event and its evidence visualize `event_evidence`; they are not ordinary folder containment bands.
|
||||
|
||||
### Party semantics (planned)
|
||||
### Party and brief-concept semantics
|
||||
|
||||
A party is a person or organization that participates in the investigation. Businesses are organizations. A party is a first-class exhibit, not a special folder: identity and evidence association must not be represented as file ownership.
|
||||
|
||||
@@ -193,6 +193,8 @@ The intended normalized shape is a `party_exhibits` supertype with one-to-one `p
|
||||
|
||||
The frontend provides distinct Person and Organization widgets through the exhibit registry. They may visually behave like dossiers—opening one can reveal associated evidence—but that interaction is derived from `party_evidence`; it does not turn the party into a folder or cause evidence to be owned by or disappear into the party.
|
||||
|
||||
A name appearing in the level brief begins as a normalized `brief_concept`, not as an exhibit. The author may record the expected Party classification, which is omitted from play-mode API responses. When the investigator classifies a concept as Person or Organization, the level creates a Party exhibit and records it in `resolved_party_exhibit_id`. This keeps the reasoning action explicit: the game does not pre-create a correctly typed party and merely hide its widget.
|
||||
|
||||
## Assets and document content
|
||||
|
||||
`assets` stores immutable uploaded bytes, checksum, MIME type, original filename, and size. Multiple cloned document exhibits may reference one asset.
|
||||
|
||||
Reference in New Issue
Block a user