{
"id": "nyc.noirot.cad.defs",
"defs": {
"tag": {
"type": "object",
"required": [
"value"
],
"properties": {
"value": {
"type": "string",
"maxLength": 320,
"maxGraphemes": 32
}
},
"description": "A short user-supplied project tag."
},
"license": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"name": {
"type": "string",
"maxLength": 1024,
"maxGraphemes": 128
},
"spdxId": {
"type": "string",
"maxLength": 128,
"description": "SPDX license identifier, when applicable."
}
},
"description": "License metadata for project files."
},
"point3d": {
"type": "object",
"properties": {
"x": {
"ref": "#quantity",
"type": "ref"
},
"y": {
"ref": "#quantity",
"type": "ref"
},
"z": {
"ref": "#quantity",
"type": "ref"
}
},
"description": "A point in three-dimensional model space."
},
"quantity": {
"type": "object",
"required": [
"value",
"unit"
],
"properties": {
"unit": {
"type": "string",
"maxLength": 32,
"knownValues": [
"g",
"kg",
"mm",
"cm",
"m",
"mm2",
"cm2",
"m2",
"mm3",
"cm3",
"m3"
]
},
"value": {
"type": "string",
"maxLength": 64,
"description": "Decimal value without the unit."
}
},
"description": "Decimal quantity encoded as a string because atproto records do not use floating point numbers."
},
"projectRef": {
"type": "object",
"required": [
"uri",
"cid"
],
"properties": {
"cid": {
"type": "string",
"format": "cid",
"description": "CID of the referenced project or release record version."
},
"uri": {
"type": "string",
"format": "at-uri",
"description": "AT URI of the referenced project or release record."
}
},
"description": "A versioned reference to a CAD project or release record."
},
"sourceFile": {
"type": "object",
"required": [
"path"
],
"properties": {
"cid": {
"type": "string",
"format": "cid",
"description": "CID for this file, if content-addressed."
},
"name": {
"type": "string",
"maxLength": 2048,
"description": "Display filename, if different from the path basename.",
"maxGraphemes": 256
},
"path": {
"type": "string",
"maxLength": 2048,
"description": "Path within a project archive or source tree."
},
"role": {
"type": "string",
"maxLength": 64,
"description": "Role this file plays in the CAD project.",
"knownValues": [
"source",
"archive",
"thumbnail",
"preview",
"derived",
"metadata"
]
},
"sha256": {
"type": "string",
"maxLength": 64,
"minLength": 64,
"description": "Lowercase hex SHA-256 digest of the file bytes."
},
"mimeType": {
"type": "string",
"maxLength": 256
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Source creation time, if known."
},
"sizeBytes": {
"type": "integer",
"minimum": 0,
"description": "Size of this file in bytes."
}
},
"description": "One file or artifact associated with a CAD project."
},
"boundingBox": {
"type": "object",
"properties": {
"xLength": {
"ref": "#quantity",
"type": "ref"
},
"yLength": {
"ref": "#quantity",
"type": "ref"
},
"zLength": {
"ref": "#quantity",
"type": "ref"
}
},
"description": "Axis-aligned bounding box dimensions for a CAD model."
},
"fileManifest": {
"type": "object",
"required": [
"files"
],
"properties": {
"files": {
"type": "array",
"items": {
"ref": "#sourceFile",
"type": "ref"
},
"maxLength": 512
},
"archiveCid": {
"type": "string",
"format": "cid",
"description": "CID of the complete project archive, if available."
},
"rootSha256": {
"type": "string",
"maxLength": 64,
"minLength": 64,
"description": "Lowercase hex SHA-256 digest representing the normalized manifest."
},
"generatedAt": {
"type": "string",
"format": "datetime"
}
},
"description": "Manifest of files associated with a project or release."
},
"zooProjectRef": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 256,
"description": "Zoo project identifier."
},
"shareUrl": {
"type": "string",
"format": "uri",
"description": "Share-link URL for the project, when available."
},
"publicUrl": {
"type": "string",
"format": "uri",
"description": "Public Zoo URL for the project, when available."
},
"visibility": {
"type": "string",
"maxLength": 64,
"description": "Zoo visibility or publication state when mirrored.",
"knownValues": [
"private",
"draft",
"published",
"unlisted"
]
},
"thumbnailUrl": {
"type": "string",
"format": "uri",
"description": "Zoo-hosted thumbnail URL, when available."
}
},
"description": "Reference to a project managed by the Zoo API."
},
"analysisFinding": {
"type": "object",
"required": [
"kind",
"name"
],
"properties": {
"kind": {
"type": "string",
"maxLength": 64,
"knownValues": [
"geometry",
"archive",
"metadata",
"render",
"security"
]
},
"name": {
"type": "string",
"maxLength": 1024,
"maxGraphemes": 128
},
"summary": {
"type": "string",
"maxLength": 4096,
"maxGraphemes": 512
},
"severity": {
"type": "string",
"maxLength": 64,
"knownValues": [
"info",
"warning",
"error"
]
}
},
"description": "A derived analysis finding that is not itself a moderation label."
},
"geometryMetrics": {
"type": "object",
"properties": {
"mass": {
"ref": "#quantity",
"type": "ref"
},
"volume": {
"ref": "#quantity",
"type": "ref"
},
"density": {
"ref": "#quantity",
"type": "ref"
},
"boundingBox": {
"ref": "#boundingBox",
"type": "ref"
},
"surfaceArea": {
"ref": "#quantity",
"type": "ref"
},
"centerOfMass": {
"ref": "#point3d",
"type": "ref"
}
},
"description": "Derived geometry and physical metrics for a CAD model."
},
"moderationContext": {
"type": "object",
"properties": {
"selfLabels": {
"type": "array",
"items": {
"type": "string",
"maxLength": 128,
"knownValues": [
"weapon",
"regulated-part",
"unsafe-manufacture",
"ip-risk",
"malware-archive",
"spam",
"needs-review"
]
},
"maxLength": 16
}
},
"description": "Author-supplied moderation hints. Labeler decisions should still be published as labels."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"description": "Shared definitions for CAD project records in the noirot.nyc prototype namespace."
}