Records
Draft v0.1
This page covers the core records used by most PluralPort files. The goal is to keep the model readable, portable, and easy to round-trip between apps.
Core record types
ProducerCapabilitiesSourceRefPrivacyWarningSystemMemberGroupGroupMembershipTaxonomyTermTaxonomyAssignmentCustomFieldDefinitionCustomFieldValueNoteAsset
Shared conventions
- Use JSON objects and arrays.
- Use UTC timestamps in ISO-8601 format.
- Prefer UUIDv7 or ULID for file-local IDs.
- Preserve original IDs in
source_refs. - Put app-specific data in namespaced
extensionsobjects. - Report dropped or degraded data with
warnings.
Envelope helpers
Producer
{
"app": "Prism",
"app_version": "3.4.0",
"exporter_version": "0.1.0",
"app_id": "prism"
}
A producer object identifies the app that created the file.
Capabilities
{
"modules": ["systems", "members", "groups", "taxonomy", "notes", "assets"]
}
This tells importers which sections are meaningful without scanning the whole export.
SourceRef
{
"app": "sheaf",
"collection": "members",
"id": "0193..."
}
source_refs keeps the original app ID and collection so round-trips can be audited.
Privacy
Privacy should be a conservative common model plus any raw source data needed to preserve fidelity.
Warning
A warning should include at least:
level:info,warning, orerrorcode: a machine-readable stringmessage: a human-readable explanation
System
A System record describes a plurality system or subsystem.
Common fields:
idnamedisplay_namedescriptiontagcolorparent_system_idarchivedprivacysource_refsextensions
Member
A Member record describes a member, alter, headmate, or custom front.
Common fields:
idsystem_idnamedisplay_namepronounsdescriptionbirthdaycoloravatar_asset_idarchivedsource_refsextensions
Group and GroupMembership
A Group record represents a collection or relationship grouping within a system. A GroupMembership ties a member to a group.
Taxonomy records
TaxonomyTerm and TaxonomyAssignment represent named categories, labels, and assignments such as roles, tags, or custom labels.
Custom fields
CustomFieldDefinition and CustomFieldValue persist custom field definitions and the values assigned to records.
Note and Asset
Note records are freeform text attached to members, systems, or other objects. Asset records represent images, files, and other media.
Short example
{
"systems": [
{
"id": "sys_01",
"name": "Example System",
"archived": false
}
],
"members": [
{
"id": "mem_01",
"system_id": "sys_01",
"name": "wren",
"pronouns": "they/them",
"source_refs": [{ "app": "sheaf", "collection": "members", "id": "mem_4482" }]
}
],
"warnings": []
}
