ralpha-assets/RalphaData/catalogue/catalogue.schema.json

123 lines
3.3 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Ralpha Asset Catalogue",
"description": "Machine-readable index of all assets in ralpha-ue5",
"type": "object",
"required": ["version", "generated_at", "assets"],
"properties": {
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"generated_at": {
"type": "string",
"format": "date-time"
},
"asset_count": {
"type": "integer"
},
"categories": {
"type": "array",
"items": { "type": "string" }
},
"assets": {
"type": "array",
"items": { "$ref": "#/definitions/Asset" }
}
},
"definitions": {
"Asset": {
"type": "object",
"required": ["id", "name", "category", "unreal_path"],
"properties": {
"id": {
"type": "string",
"description": "Stable unique identifier (snake_case)",
"pattern": "^[a-z][a-z0-9_]*$"
},
"name": {
"type": "string",
"description": "Human-readable display name"
},
"category": {
"type": "string",
"description": "Category path (e.g., Furniture/Seating)"
},
"unreal_path": {
"type": "string",
"description": "Full Unreal asset path",
"pattern": "^/Game/"
},
"tags": {
"type": "array",
"items": { "type": "string" },
"description": "Searchable tags/synonyms"
},
"thumbnail": {
"type": "string",
"description": "Relative path to thumbnail image"
},
"bounds": {
"type": "object",
"description": "Bounding box in cm",
"properties": {
"x": { "type": "number" },
"y": { "type": "number" },
"z": { "type": "number" }
}
},
"pivot": {
"type": "string",
"enum": ["bottom_center", "center", "bottom_back", "custom"],
"default": "bottom_center"
},
"placement_modes": {
"type": "array",
"items": {
"type": "string",
"enum": ["floor", "wall", "ceiling", "surface", "hanging", "floating"]
},
"default": ["floor"]
},
"collision": {
"type": "boolean",
"default": true
},
"lods": {
"type": "integer",
"description": "Number of LOD levels"
},
"triangle_count": {
"type": "integer",
"description": "LOD0 triangle count"
},
"materials": {
"type": "array",
"items": { "type": "string" },
"description": "Material slot names"
},
"variants": {
"type": "array",
"items": { "type": "string" },
"description": "IDs of variant assets (e.g., color options)"
},
"license": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": ["CC0", "CC-BY", "CC-BY-SA", "Megascans", "Marketplace", "Custom", "Restricted"]
},
"source": { "type": "string" },
"attribution": { "type": "string" }
}
},
"added_at": {
"type": "string",
"format": "date-time"
}
}
}
}
}