Metadata Files#
Code |
PKG.META.001 |
|---|---|
Validator |
Not yet implemented |
Compatibility |
|
Tags |
Summary#
Metadata files MUST be JSON with UTF-8 encoding, use reverse domain naming, and follow write-once semantics
Description#
Format#
All metadata files MUST be JSON documents with UTF-8 encoding. Each file MUST include format_version (“major.minor” format, following the same versioning convention as the package definition). Each file SHOULD include description (human-readable description to support discovery). Metadata files SHOULD include descriptive information (e.g., tags, categories, physical properties) that enables AI agents to select appropriate assets. Additional fields MAY be present; implementations MUST ignore unknown fields during processing and MUST preserve them when reading and writing, ensuring that tools which do not understand a field do not remove it during transport, mirroring, or re-publication.
Naming#
Each metadata file name MUST use reverse domain notation (e.g., com.nvidia.simready.conformance.json). The name field in a metadata entry (in the package definition) MUST match the file name of the metadata file.
Write-Once Semantics#
Metadata files MUST NOT be modified or deleted once written. New metadata files MAY be added to a package after creation. Tools that copy or mirror a package MUST include all files in .metadata/, regardless of whether they are listed in the package definition’s metadata array. Removing any metadata file requires publishing under a new package_id.
Metadata Registration Tiers#
Metadata files fall into one of three registration tiers based on their relationship with the package definition’s metadata array:
Registered-immutable: Listed in the
metadataarray at package creation time. These files are included in the package hash computation and MUST NOT change after package creation. Features that define registered-immutable metadata MUST specify that the file be listed in themetadataarray when present. Example:com.nvidia.simready.packaging.bom.json(PKG.BOM.001).Post-creation: Added to the
.metadata/folder after package creation. These are NOT listed in themetadataarray and are NOT covered by the package hash. Tools MUST still preserve these files when copying or mirroring. Example:com.nvidia.simready.conformance.Prop-Robotics-Physx@1.0.0.json(PKG.CONF.001) when added post-publish.Either: Some metadata files MAY be registered-immutable (added at creation) or post-creation (added later), depending on the use case. Example: conformance metadata can be pre-publish (in the
metadataarray, as publisher-declared conformance) or post-publish (added later as independent validation evidence).
Why is it required?#
A uniform format and naming convention lets any tool discover and parse package metadata without prior agreement between publisher and consumer
Write-once semantics ensure that metadata added after publishing (e.g., third-party validation results) coexists safely with the publisher’s original metadata
Examples#
// Valid: metadata file with required format_version and reverse domain name
// File: .metadata/com.acme.physics.json
{
"format_version": "1.0",
"description": "Physical properties for simulation",
"mass_kg": 12.5,
"friction_coefficient": 0.6
}
// Invalid: metadata file missing format_version
// File: .metadata/com.acme.physics.json
{
"mass_kg": 12.5
}
// Invalid: metadata file with non-reverse-domain name
// File: .metadata/physics.json
{
"format_version": "1.0"
}
How to comply#
Use JSON with UTF-8 encoding; always include
format_version(major.minor)Name metadata files using reverse domain notation
Never modify or delete existing metadata files; new files may be added after creation
Include all
.metadata/files when copying or mirroring packagesPreserve unknown fields when reading and writing (round-trip safety)