ADAC Specification Style Guide
Authoring Conventions for ADAC Core and Profile Documents
| Version | 1.0 |
| Status | Stable |
| Date | 2026 |
| Lead Author | John Vaden |
© 2026 InnoVadens, LLC. All rights reserved.
Abstract
This document defines the editorial conventions, structural patterns, and formatting rules that govern every Archival Digital Asset Container (ADAC) specification document — from the core format specification to each domain profile extension. It ensures terminological consistency, predictable document layout, uniform JSON schema conventions, and clear normative language so that implementers encounter a single, coherent authoring voice across the entire ADAC family. All ADAC specification authors, technical editors, and profile extension designers are expected to follow the conventions set forth herein.
Table of Contents
- Introduction
- Normative Language
- Document Structure
- Terminology Conventions
- JSON Conventions
- Profile Wrapper Requirements
- Writing Style
- Interoperability Guidance
- Versioning Rules
- References
1. Introduction
1.1 Purpose
The ADAC ecosystem comprises a core format specification and an open-ended family of domain profile extensions (e.g., ADAC-Genealogy, ADAC-Legal). As the family grows, consistency across documents becomes critical for implementers, who must be able to navigate any ADAC specification with the same expectations regarding structure, terminology, and conventions. This style guide codifies the conventions that every ADAC specification author MUST follow, covering document structure, normative language, terminology, JSON schema formatting, and versioning.
1.2 Scope
This guide applies to:
- The ADAC Format Specification (core)
- All official ADAC profile extension specifications (ADAC-Genealogy, ADAC-Legal, and future profiles)
- Companion documents such as API documentation, CLI documentation, and implementation guides
This guide does not govern end-user application interfaces, marketing materials, or community-contributed tutorials unless they carry the official ADAC designation.
1.3 Audience
Specification authors, technical editors, profile extension designers, and anyone contributing normative text to the ADAC document family.
2. Normative Language
2.1 RFC 2119 Keywords
ADAC specifications use the keywords defined in RFC 2119 and RFC 8174: MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL. These keywords MUST appear in uppercase when conveying normative force. When used in lowercase, the word carries its ordinary English meaning and is non-normative.
2.2 Conformance Clause
Every ADAC specification MUST include a Conformance section that:
- References RFC 2119 and RFC 8174
- Defines conformance levels if applicable
- States the normative status of each section
2.3 Normative vs. Informative Text
Normative sections impose requirements on implementations. Informative sections aid understanding but carry no conformance weight.
Convention: Use
NOTE —for informative asides andEXAMPLE —for illustrative code or data.
3. Document Structure
3.1 Required Sections (Core Spec)
The ADAC Format Specification MUST present sections in the following order:
- Title Block
- Abstract
- Table of Contents
- Introduction
- Conformance
- Terminology
- Architecture
- Technical Sections
- Complete Container Example
- References
- Version History
3.2 Required Sections (Profile Extensions)
Each ADAC profile extension MUST present:
- Title Block
- Abstract
- Table of Contents
- Introduction
- Conformance
- Terminology
- Profile Metadata File Schema
- Linked Entity Definitions
- Region Annotation Extensions
- Interoperability
- Complete Profile Example
- References
- Version History
3.3 Section Numbering
Use decimal numbering up to three levels: §1, §1.1, §1.1.1.
3.4 Cross-References
Use "see §N.N". Never reference page numbers.
4. Terminology Conventions
4.1 Defined Terms
Every specification MUST include a Terminology section. First use of a defined term SHOULD appear in bold.
4.2 Consistent Naming
| Preferred Term | Avoid |
|---|---|
| container | package, archive, bundle |
| master file | original, source file, primary |
| derivative | copy, rendition, version |
| region | zone, area, bounding box |
| linked entity | annotation payload, domain data |
| profile | plugin, module |
| provenance log | audit trail, history |
| fixity | integrity check |
| manifest | index, catalog |
| edit pipeline | edit stack |
4.3 Namespace Prefixes
Linked entity keys use the format:
namespace:type
Example: genealogy:person
5. JSON Conventions
5.1 Schema Language
Use JSON Schema Draft 2020-12.
5.2 Property Naming
Use camelCase for all JSON properties.
5.3 Date-Time Format
Use ISO 8601 with UTC offset:
2025-01-15T10:30:00Z
5.4 Identifiers
| Identifier Type | Format |
|---|---|
| Container IDs | UUID v4 |
| Internal IDs | kebab-case |
| Profile IDs | Namespaced when needed |
5.5 Enumerated Values
Use kebab-case for enums.
5.6 Null and Absent Fields
Absent and null are equivalent.
5.7 Extensibility
Profiles MAY add fields; core MUST NOT.
5.8 Example Formatting
All JSON examples must be:
- Valid JSON
- 2-space indented
- Captioned
- Treated as informative unless stated otherwise
6. Profile Wrapper Requirements
6.1 File Location
Profile metadata files reside at:
metadata/profiles/<profileName>.json
6.2 Wrapper Schema
Required fields:
| Field | Type | Description |
|---|---|---|
profileName |
string | Registered profile identifier |
profileVersion |
string | Profile version |
schemaRef |
string (URI) | JSON Schema reference |
6.3 Additive-Only Rule
Profiles MUST NOT:
- Redefine core fields
- Alter core semantics
- Modify
manifest.jsonexcept to list the profile
6.4 Multi-Profile Coexistence
Namespaces prevent conflicts.
7. Writing Style
7.1 Voice and Tense
Use third-person, present-tense, active voice.
7.2 Sentence Structure
One requirement per sentence.
7.3 Lists
- Numbered for sequences
- Bullets for sets
7.4 Code and Markup
Use monospace for JSON keys and file paths.
7.5 Abbreviations
Spell out on first use.
8. Interoperability Guidance
8.1 Standards Alignment
Each specification MUST document external standards it aligns with.
8.2 Graceful Ignorance
Readers MUST ignore unknown profile data without error.
8.3 Round-Trip Fidelity
Implementations MUST preserve unrecognized fields.
9. Versioning Rules
9.1 Version Numbering
Use MAJOR.MINOR format.
9.2 Compatibility Guarantees
adacVersion: "1.x" MUST be readable by any ADAC 1.0 implementation.
9.3 Version History Section
Every specification MUST include a version history table in the following format:
| Version | Date | Summary of Changes |
|---|
9.4 Profile Versioning
Profiles maintain independent version numbers.
10. References
10.1 Normative References
- RFC 2119
- RFC 8174
- JSON Schema Draft 2020-12
- ISO 8601
- Dublin Core
- PREMIS
10.2 Informative References
- ZIP APPNOTE
- XMP
- GEDCOM 7
- PREMIS Implementation Guidelines
Version History
| Version | Date | Summary of Changes |
|---|---|---|
| 1.0 | 2026 | Initial publication. |
© 2026 InnoVadens, LLC. All rights reserved.