This repository has been archived on 2026-05-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
AgrarianGameArchive/Data/Tiles/tile_registry.schema.json
T

192 lines
4.3 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://agrarian.local/schemas/tile_registry.schema.json",
"title": "Agrarian Terrain Tile Registry",
"type": "object",
"required": ["schema_version", "grid_scheme", "tiles"],
"additionalProperties": false,
"properties": {
"schema_version": {
"type": "integer",
"minimum": 1
},
"grid_scheme": {
"type": "string",
"minLength": 1
},
"tiles": {
"type": "array",
"items": {
"$ref": "#/$defs/tile"
}
}
},
"$defs": {
"tile_status": {
"type": "string",
"enum": [
"unknown",
"queued",
"source_data_found",
"generated",
"validated",
"packaged",
"published",
"deprecated",
"blocked"
]
},
"tile": {
"type": "object",
"required": [
"tile_id",
"display_name",
"grid",
"status",
"biome_primary",
"generation_version",
"package_version",
"neighbors",
"sources"
],
"additionalProperties": false,
"properties": {
"tile_id": {
"type": "string",
"pattern": "^[a-z0-9_]+$"
},
"display_name": {
"type": "string"
},
"grid": {
"$ref": "#/$defs/grid"
},
"status": {
"$ref": "#/$defs/tile_status"
},
"biome_primary": {
"type": "string"
},
"biome_secondary": {
"type": "array",
"items": {
"type": "string"
}
},
"resource_hints": {
"type": "array",
"items": {
"type": "string"
}
},
"generation_version": {
"type": "integer",
"minimum": 0
},
"package_version": {
"type": "integer",
"minimum": 0
},
"neighbors": {
"type": "object",
"additionalProperties": false,
"properties": {
"n": { "type": "string" },
"ne": { "type": "string" },
"e": { "type": "string" },
"se": { "type": "string" },
"s": { "type": "string" },
"sw": { "type": "string" },
"w": { "type": "string" },
"nw": { "type": "string" }
}
},
"sources": {
"type": "array",
"items": {
"$ref": "#/$defs/source"
}
},
"notes": {
"type": "string"
}
}
},
"grid": {
"type": "object",
"required": [
"projection",
"utm_zone",
"easting_min_m",
"northing_min_m",
"easting_max_m",
"northing_max_m",
"tile_size_m",
"center_latitude",
"center_longitude"
],
"additionalProperties": false,
"properties": {
"projection": {
"type": "string"
},
"utm_zone": {
"type": "string"
},
"easting_min_m": {
"type": "integer"
},
"northing_min_m": {
"type": "integer"
},
"easting_max_m": {
"type": "integer"
},
"northing_max_m": {
"type": "integer"
},
"tile_size_m": {
"type": "integer",
"const": 1000
},
"center_latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"center_longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
}
}
},
"source": {
"type": "object",
"required": ["source_kind", "source_name", "coverage_status"],
"additionalProperties": false,
"properties": {
"source_kind": {
"type": "string"
},
"source_name": {
"type": "string"
},
"source_uri": {
"type": "string"
},
"license_name": {
"type": "string"
},
"source_version": {
"type": "string"
},
"coverage_status": {
"type": "string",
"enum": ["needed", "candidate", "confirmed", "missing", "not_applicable"]
}
}
}
}
}