Skip to main content
This guide covers every field defined in schema/dms.json. Fields are grouped by tier: Required, Recommended, and Optional.
Generate a new record skeleton with dms init. The interactive wizard prompts for all required and recommended fields and auto-generates the id UUID.

Required fields

These five fields must be present in every DMS record. A record missing any of them will fail dms validate.
id
string
required
Unique identifier for the record. Must be a valid UUID v4 in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Generated automatically by dms init. Maps to dc:identifier.
UUIDs must be unique across your entire collection. Never reuse or manually duplicate an id value.
title
string
required
Name or title of the heritage item. Minimum 1 character, maximum 500 characters. Maps to dc:title.Use the original title if one exists. Include dates or locations when helpful for disambiguation. Avoid generic titles such as “Photo” or “Document”.
type
string
required
Category of the heritage item. Must be one of the 10 allowed enum values. Maps to dc:type.
See Heritage Item Types for full descriptions and examples of each value.
description
string
required
Narrative context or summary of the heritage item. Minimum 1 character, no maximum length. Maps to dc:description.This is one of the most important fields for discoverability. Explain what the item is and why it matters. Include relevant historical or cultural context, and mention the people, places, or events featured. Write in the language specified by the language field.
language
string
required
Primary language of the content, expressed as an IETF BCP 47 language code. Pattern: ^[a-z]{2,3}(-[A-Z]{2,4})?$. Maps to dc:language.

These fields are strongly recommended for complete, interoperable records. They are not enforced by the schema validator, but omitting them reduces discoverability and archival value.
creator
Creator[]
Person(s) or organization(s) who created the heritage item. Must contain at least one Creator object if present. Maps to dc:creator.
date
object
Date information associated with the item. All date values use ISO 8601 format (YYYY-MM-DD). Maps to dc:date, dcterms:created, and dcterms:modified.
subject
string[]
Tags or keywords describing the content. Each item must be a non-empty string. All values must be unique within the array. Maps to dc:subject.Use lowercase for consistency. Include both broad and specific terms, and add cultural or community-specific terms where appropriate. Aim for 3–10 tags per record.
location
object
Geographic information associated with the item. Maps to dcterms:spatial.
rights
object
Licensing, access, and intellectual property information. Maps to dc:rights.

Optional fields

These fields provide additional provenance, format, and relationship context. Include them when the information is available.
source
object
Information about the origin, contributor, or archival collection. Maps to dc:source.
format
string
MIME type of the digital object. Pattern: ^[a-z]+/[a-z0-9.+-]+$. Maps to dc:format.Common values: image/jpeg, image/png, audio/mpeg, video/mp4, application/pdf, text/plain, text/html.
relation
string[]
IDs of related DMS records. Each value must be a valid UUID v4. All values must be unique within the array. Maps to dc:relation.Use this field to link items that belong together — for example, a story record and its associated audio recording, or a photograph and the event it documents.
coverage
object
Temporal extent or scope of the item’s content. Maps to dc:coverage.
schema_version
string
default:"1.0.0"
Version of the DMS schema this record conforms to. Must be the constant string "1.0.0" for the current schema. Maps to schema:schemaVersion.
Including schema_version makes it possible to automatically detect and migrate records if the schema is updated in a future release.