Definition of a PackableSample-compatible sample type. Supports versioning via rkey format: {NSID}@{semver}. Schema format is extensible via union type.
any
Any valid record key
Properties
$atdataSchemaVersion
integer
Optional
Format version discriminator for the schema record itself. Used to detect breaking changes in the record structure. When absent, treated as version 1 for backward compatibility.
minimum: 1createdAt
string
datetime
Required
Timestamp when this schema version was created. Immutable once set (ATProto records are permanent).
description
string
Optional
Human-readable description of what this sample type represents
maxLength: 5000 bytesmetadata
ref
#schemaMetadata
Optional
Optional metadata about this schema. Common fields include license and tags, but any additional fields are permitted.
name
string
Required
Human-readable display name for this sample type. Used for documentation and UI. The NSID in the record URI provides unique identification; name collisions across NSIDs are acceptable.
maxLength: 100 bytesschema
union
Required
Schema definition for this sample type. Currently supports JSON Schema Draft 7. Union allows for future schema formats (Avro, Protobuf, etc.) without breaking changes.
schemaType
ref
science.alt.dataset.schemaType
Required
Type of schema definition. This field indicates which union member is present in the schema field.
version
string
Required
Semantic version (e.g., '1.0.0')
maxLength: 100 bytesView raw schema
{
"key": "any",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"version",
"schemaType",
"schema",
"createdAt"
],
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"description": "Human-readable display name for this sample type. Used for documentation and UI. The NSID in the record URI provides unique identification; name collisions across NSIDs are acceptable."
},
"schema": {
"refs": [
"science.alt.dataset.schema#jsonSchemaFormat"
],
"type": "union",
"closed": false,
"description": "Schema definition for this sample type. Currently supports JSON Schema Draft 7. Union allows for future schema formats (Avro, Protobuf, etc.) without breaking changes."
},
"version": {
"type": "string",
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
"maxLength": 100,
"description": "Semantic version (e.g., '1.0.0')"
},
"metadata": {
"ref": "#schemaMetadata",
"type": "ref",
"description": "Optional metadata about this schema. Common fields include license and tags, but any additional fields are permitted."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp when this schema version was created. Immutable once set (ATProto records are permanent)."
},
"schemaType": {
"ref": "science.alt.dataset.schemaType",
"type": "ref",
"description": "Type of schema definition. This field indicates which union member is present in the schema field."
},
"description": {
"type": "string",
"maxLength": 5000,
"description": "Human-readable description of what this sample type represents"
},
"$atdataSchemaVersion": {
"type": "integer",
"minimum": 1,
"description": "Format version discriminator for the schema record itself. Used to detect breaking changes in the record structure. When absent, treated as version 1 for backward compatibility."
}
}
},
"description": "Definition of a PackableSample-compatible sample type. Supports versioning via rkey format: {NSID}@{semver}. Schema format is extensible via union type."
}