{
  "openapi": "3.1.1",
  "info": {
    "title": "2b2tAtlas.Server | v1",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "http://api.blackportal.cloud/"
    }
  ],
  "paths": {
    "/api/Admin/users": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "GET /api/admin/users - Get all users",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Admin"
        ],
        "summary": "POST /api/admin/users - Create a new user",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        }
      }
    },
    "/api/Admin/users/{id}": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "GET /api/admin/users/{id} - Get user by ID",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Admin"
        ],
        "summary": "PUT /api/admin/users/{id} - Update an existing user",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Admin"
        ],
        "summary": "DELETE /api/admin/users/{id} - Delete a user",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Admin/stats": {
      "get": {
        "tags": [
          "Admin"
        ],
        "summary": "GET /api/admin/stats - Get database statistics",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseStats"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseStats"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatabaseStats"
                }
              }
            }
          }
        }
      }
    },
    "/api": {
      "get": {
        "tags": [
          "ApiIndex"
        ],
        "summary": "GET /api — a discovery index of public endpoints and the OpenAPI document location.",
        "responses": {
          "200": {
            "description": "A static description of the public API surface."
          }
        }
      }
    },
    "/api/admin/collector": {
      "get": {
        "tags": [
          "ArchiveCollectorAdmin"
        ],
        "summary": "Returns the current five-worker capture and rolling-production-handoff status.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ArchiveCollectorStatusDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArchiveCollectorStatusDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArchiveCollectorStatusDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/Attachments": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "Returns public attachment metadata, optionally filtered by location or media type.",
        "parameters": [
          {
            "name": "locationId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "mediaType",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 500
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AttachmentRecord"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AttachmentRecord"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AttachmentRecord"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Attachments/{id}": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "Returns one public attachment metadata record.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentRecord"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentRecord"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentRecord"
                }
              }
            }
          }
        }
      }
    },
    "/api/Audit": {
      "get": {
        "tags": [
          "Audit"
        ],
        "summary": "GET /api/audit — the most recent audit entries (newest first).",
        "parameters": [
          {
            "name": "take",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AuditLogEntry"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AuditLogEntry"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AuditLogEntry"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Auth/register": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Register a new user account",
        "requestBody": {
          "description": "Registration details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Auth/login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Login with username/Discord handle and password",
        "requestBody": {
          "description": "Login credentials",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Auth/profile": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "Get current user profile (requires authentication)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/Auth/update-last-login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Update last login timestamp for current user (requires authentication)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": { }
              },
              "application/json": {
                "schema": { }
              },
              "text/json": {
                "schema": { }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/Auth/validate": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "Validate current JWT token (requires authentication)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": { }
              },
              "application/json": {
                "schema": { }
              },
              "text/json": {
                "schema": { }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/enrichment/status": {
      "get": {
        "tags": [
          "EnrichmentAdmin"
        ],
        "summary": "GET /api/enrichment/status — current engine state and outstanding work counts.",
        "responses": {
          "200": {
            "description": "The engine status snapshot.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EnrichmentStatusDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrichmentStatusDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrichmentStatusDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/enrichment/revisions": {
      "get": {
        "tags": [
          "EnrichmentAdmin"
        ],
        "summary": "GET /api/enrichment/revisions — AI enrichment revisions, optionally filtered by status.",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "description": "Optional status filter (Applied/Pending/Approved/Rejected/Reverted).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The matching AI revisions, newest first.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevisionDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevisionDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevisionDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/enrichment/run": {
      "post": {
        "tags": [
          "EnrichmentAdmin"
        ],
        "summary": "POST /api/enrichment/run — match and describe every eligible location.",
        "requestBody": {
          "description": "The run options; a null body uses defaults.",
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/EnrichmentRunRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/EnrichmentRunRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/EnrichmentRunRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The new server-owned run, or the already-active run.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EnrichmentRunStatusDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrichmentRunStatusDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrichmentRunStatusDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/enrichment/groups/run": {
      "post": {
        "tags": [
          "EnrichmentAdmin"
        ],
        "summary": "POST /api/enrichment/groups/run — creates review-only proposals for unrepresented wiki groups that\r\nexplicitly name an existing Atlas build. The model drafts prose, but never creates a group directly.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/GroupDiscoveryRunRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/GroupDiscoveryRunRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/GroupDiscoveryRunRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GroupDiscoveryRunSummary"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupDiscoveryRunSummary"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupDiscoveryRunSummary"
                }
              }
            }
          }
        }
      }
    },
    "/api/enrichment/{id}/apply": {
      "post": {
        "tags": [
          "EnrichmentAdmin"
        ],
        "summary": "POST /api/enrichment/{id}/apply — apply a queued (Pending) AI suggestion.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The revision id.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The updated revision."
          }
        }
      }
    },
    "/api/enrichment/{id}/keep": {
      "post": {
        "tags": [
          "EnrichmentAdmin"
        ],
        "summary": "POST /api/enrichment/{id}/keep — accept an already auto-applied (Applied) suggestion.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The revision id.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The updated revision."
          }
        }
      }
    },
    "/api/enrichment/{id}/reject": {
      "post": {
        "tags": [
          "EnrichmentAdmin"
        ],
        "summary": "POST /api/enrichment/{id}/reject — discard a queued (Pending) suggestion without applying it.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The revision id.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The updated revision."
          }
        }
      }
    },
    "/api/enrichment/{id}/revert": {
      "post": {
        "tags": [
          "EnrichmentAdmin"
        ],
        "summary": "POST /api/enrichment/{id}/revert — undo an auto-applied (Applied) suggestion.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The revision id.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The updated revision."
          }
        }
      }
    },
    "/api/locations/{id}/enrich": {
      "post": {
        "tags": [
          "Enrichment"
        ],
        "summary": "Generates a wiki match and drafted description for a location. Nothing is saved; the returned\r\nsuggestion is for review. Requires the location edit permission.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The location row id to enrich.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "regenerateDescription",
            "in": "query",
            "description": "When true, drafts a description even if one already exists.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The enrichment suggestion, 404 when the location is missing, or 503 when the engine is unavailable.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WikiEnrichmentSuggestion"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WikiEnrichmentSuggestion"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WikiEnrichmentSuggestion"
                }
              }
            }
          }
        }
      }
    },
    "/api/Groups": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "Returns the public directory of 2b2t build and infrastructure groups, ordered by name.",
        "responses": {
          "200": {
            "description": "A cacheable projection of all persisted groups.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Group"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Group"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Group"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Groups"
        ],
        "summary": "Creates a group attribution record and audits the authenticated manager.",
        "requestBody": {
          "description": "The group metadata; the server supplies its identifier and creation timestamp.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Group"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Group"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Group"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The persisted group with a location header for its public endpoint.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              }
            }
          }
        }
      }
    },
    "/api/Groups/{id}": {
      "get": {
        "tags": [
          "Groups"
        ],
        "summary": "Returns one group used for Atlas attribution.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The database identifier of the group.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The group projection, or `404` when it does not exist.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Groups"
        ],
        "summary": "Replaces the editable metadata for an existing group and records the mutation.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The group identifier whose metadata will be changed.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The new name, classification, description, color, and wiki attribution.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Group"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Group"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Group"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The updated group, or `404` when the identifier is unknown.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Group"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Groups"
        ],
        "summary": "Deletes a group attribution record and writes an audit event.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the group to remove.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`204` after deletion, or `404` when the group does not exist."
          }
        }
      }
    },
    "/api/Highways": {
      "get": {
        "tags": [
          "Highways"
        ],
        "summary": "GET /api/highways — all public, approved highways.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Highway"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Highway"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Highway"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Highways"
        ],
        "summary": "POST /api/highways — create a highway.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Highway"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Highway"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Highway"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Highway"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Highway"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Highway"
                }
              }
            }
          }
        }
      }
    },
    "/api/Highways/{id}": {
      "get": {
        "tags": [
          "Highways"
        ],
        "summary": "GET /api/highways/{id} — a single highway.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Highway"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Highway"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Highway"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Highways"
        ],
        "summary": "PUT /api/highways/{id} — update a highway.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Highway"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Highway"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Highway"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Highway"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Highway"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Highway"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Highways"
        ],
        "summary": "DELETE /api/highways/{id} — delete a highway.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Highways/pending": {
      "get": {
        "tags": [
          "Highways"
        ],
        "summary": "GET /api/highways/pending — highways awaiting moderation.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Highway"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Highway"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Highway"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Highways/all": {
      "get": {
        "tags": [
          "Highways"
        ],
        "summary": "GET /api/highways/all — every highway regardless of status/visibility (admin).",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Highway"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Highway"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Highway"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Highways/{id}/approve": {
      "post": {
        "tags": [
          "Highways"
        ],
        "summary": "POST /api/highways/{id}/approve — approve a pending highway.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Highways/{id}/reject": {
      "post": {
        "tags": [
          "Highways"
        ],
        "summary": "POST /api/highways/{id}/reject — reject a pending highway.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/ingestion-jobs": {
      "get": {
        "tags": [
          "IngestionJobs"
        ],
        "summary": "Returns the 100 most recent ingestion jobs for authorized Atlas operators.",
        "responses": {
          "200": {
            "description": "Queue state with public job identifiers; claim tokens are never included.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IngestionJobDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IngestionJobDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IngestionJobDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "IngestionJobs"
        ],
        "summary": "Validates and queues a world download on behalf of the authenticated operator.",
        "requestBody": {
          "description": "The bounded intake and render-registration metadata.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IngestionJobRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IngestionJobRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IngestionJobRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The newly persisted queued job, or a validation/conflict response.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/ingestion-jobs/local": {
      "post": {
        "tags": [
          "IngestionJobs"
        ],
        "summary": "Queues a local intake request after authenticating the dedicated ingestion worker key.",
        "requestBody": {
          "description": "The bounded intake and render-registration metadata.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IngestionJobRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IngestionJobRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IngestionJobRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The newly persisted queued job, or `401` when the worker key is invalid.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/ingestion-jobs/local-intake": {
      "post": {
        "tags": [
          "IngestionJobs"
        ],
        "summary": "Archives, inspects, and queues a completed ZIP already placed directly in the configured local intake directory.\r\nThis is the zero-copy handoff used by a Blackbox-side Archive acquisition client.",
        "description": "The supplied name must be a plain ZIP basename, never a path. Callers must finish downloads under a temporary\r\nextension and atomically rename to this name before invoking the route, so the ingestion worker cannot observe\r\npartially written archives.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LocalIntakeQueueRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LocalIntakeQueueRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LocalIntakeQueueRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/ingestion-jobs/match-preview": {
      "post": {
        "tags": [
          "IngestionJobs"
        ],
        "summary": "Previews which existing locations a dropped WDL's dimensions would match, without queuing anything.",
        "requestBody": {
          "description": "The render name and per-dimension centroids computed client-side from region file names.",
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/MatchPreviewRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/MatchPreviewRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/MatchPreviewRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Per-dimension match previews (a confident location or ranked suggestions).",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MatchPreviewResult"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MatchPreviewResult"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MatchPreviewResult"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ingestion-jobs/upload": {
      "post": {
        "tags": [
          "IngestionJobs"
        ],
        "summary": "Accepts an authorized operator's world-download archive over HTTP, stores it in the shared intake directory, and queues it.",
        "description": "Enables remote operators to queue ingestions without any local worker. Deep archive inspection remains deferred to the worker's prepare stage.",
        "requestBody": {
          "description": "Token that cancels streaming and persistence.",
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "metadata": {
                        "type": "string"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "properties": {
                      "archive": {
                        "$ref": "#/components/schemas/IFormFile"
                      }
                    }
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The newly queued job, or a validation/conflict response.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/ingestion-jobs/upload-sessions": {
      "post": {
        "tags": [
          "IngestionJobs"
        ],
        "summary": "Starts a resumable upload whose chunks remain below reverse-proxy body limits.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChunkedUploadStartRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ChunkedUploadStartRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ChunkedUploadStartRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ChunkedUploadSession"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChunkedUploadSession"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChunkedUploadSession"
                }
              }
            }
          }
        }
      }
    },
    "/api/ingestion-jobs/upload-sessions/{id}/chunks": {
      "put": {
        "tags": [
          "IngestionJobs"
        ],
        "summary": "Appends one exactly-positioned binary chunk to a resumable upload.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/ingestion-jobs/upload-sessions/{id}/complete": {
      "post": {
        "tags": [
          "IngestionJobs"
        ],
        "summary": "Verifies and queues a fully uploaded resumable WDL.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/ingestion-jobs/{publicId}": {
      "delete": {
        "tags": [
          "IngestionJobs"
        ],
        "summary": "Cancels an unclaimed queued job and records the administrator action.",
        "parameters": [
          {
            "name": "publicId",
            "in": "path",
            "description": "The opaque job identifier exposed outside the database.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`204` on cancellation, `404` if absent, or `409` once work has started."
          }
        }
      }
    },
    "/api/ingestion-jobs/claim": {
      "post": {
        "tags": [
          "IngestionJobs"
        ],
        "summary": "Atomically leases the oldest eligible job to the authenticated local worker.",
        "description": "Expired leases may be reclaimed up to the configured attempt limit.",
        "responses": {
          "200": {
            "description": "The claimed job and its one-time plaintext claim token, `204` when the queue is empty,\r\nor `401` when the worker key is invalid.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/ingestion-jobs/{publicId}/status": {
      "put": {
        "tags": [
          "IngestionJobs"
        ],
        "summary": "Accepts a leased worker's progress or terminal update and renews its claim lease.",
        "description": "A completed location render is registered in the same database transaction as the terminal\r\njob state. Allowed URL prefixes and coordinate bounds are revalidated at this trust boundary.",
        "parameters": [
          {
            "name": "publicId",
            "in": "path",
            "description": "The opaque identifier of the claimed job.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Worker status carrying the per-claim token and bounded completion metadata.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IngestionJobUpdate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IngestionJobUpdate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IngestionJobUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The persisted job state, or an authorization, validation, or lease-conflict response.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/ingestion-jobs/{publicId}/match": {
      "post": {
        "tags": [
          "IngestionJobs"
        ],
        "summary": "Resolves a job awaiting a manual match by attaching a location or requesting a new one, then re-queues it.",
        "parameters": [
          {
            "name": "publicId",
            "in": "path",
            "description": "The opaque identifier of the parked job.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The chosen location, or a null location to create one at the render centroid.",
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/ResolveMatchRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/ResolveMatchRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/ResolveMatchRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The re-queued job, or a not-found, conflict, or validation response.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestionJobDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/locations.php": {
      "get": {
        "tags": [
          "LegacyApi"
        ],
        "summary": "Returns locations in the exact snake-case shape expected by historical PHP API clients.",
        "parameters": [
          {
            "name": "x",
            "in": "query",
            "description": "Optional block X coordinate used with z to sort nearest locations first.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "z",
            "in": "query",
            "description": "Optional block Z coordinate used with x to sort nearest locations first.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "rows",
            "in": "query",
            "description": "Optional maximum row count, bounded to 10,000.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "dimension",
            "in": "query",
            "description": "Legacy dimension code: 0 Overworld, 1 End, or -1 Nether.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "warps",
            "in": "query",
            "description": "Set to 1 to retain only locations that have at least one warp.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "Optional case-insensitive name fragment interpreted by SQLite `LIKE`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A cacheable compatibility projection with coordinates encoded as strings.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LegacyLocation"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LegacyLocation"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LegacyLocation"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/locationCount.php": {
      "get": {
        "tags": [
          "LegacyApi"
        ],
        "summary": "Returns the total location count using the legacy `locationCount` response property.",
        "responses": {
          "200": {
            "description": "A cacheable anonymous object containing the current persisted location count."
          }
        }
      }
    },
    "/api/newWarp.php": {
      "get": {
        "tags": [
          "LegacyApi"
        ],
        "summary": "Rejects the retired anonymous legacy warp-write route.",
        "responses": {
          "200": {
            "description": "`410 Gone` with guidance to use the authenticated modern API."
          }
        }
      },
      "post": {
        "tags": [
          "LegacyApi"
        ],
        "summary": "Rejects the retired anonymous legacy warp-write route.",
        "responses": {
          "200": {
            "description": "`410 Gone` with guidance to use the authenticated modern API."
          }
        }
      }
    },
    "/api/Locations": {
      "get": {
        "tags": [
          "Locations"
        ],
        "summary": "Gets all locations with their warps",
        "responses": {
          "200": {
            "description": "List of locations with warps",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Location"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Location"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Location"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Locations"
        ],
        "summary": "Creates a new location with its warps",
        "requestBody": {
          "description": "Location to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Location"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Location"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Location"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Created location",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Location"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Location"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Location"
                }
              }
            }
          }
        }
      }
    },
    "/api/Locations/{id}": {
      "get": {
        "tags": [
          "Locations"
        ],
        "summary": "Gets a specific location by ID with its warps",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Location ID",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Location details with warps",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Location"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Location"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Location"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Locations"
        ],
        "summary": "Updates an existing location and its warps",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Location ID",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Updated location data",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Location"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Location"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Location"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Updated location",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Location"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Location"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Location"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Locations"
        ],
        "summary": "Deletes a location and all its associated warps",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Location ID",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "No content"
          }
        }
      }
    },
    "/api/Locations/{id}/attachments": {
      "put": {
        "tags": [
          "Locations"
        ],
        "summary": "Updates attachments for a specific location",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Location ID",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "List of attachments to update",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Attachment"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Attachment"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Attachment"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success or error response"
          }
        }
      }
    },
    "/api/MapRenders": {
      "get": {
        "tags": [
          "MapRenders"
        ],
        "summary": "GET /api/maprenders — published world renders (public map layers).",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MapRenderDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MapRenderDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MapRenderDto"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "MapRenders"
        ],
        "summary": "PUT /api/maprenders — idempotent upsert by slug. The ingestor calls this on\r\ncompletion to register (or refresh) a world render as a map layer.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MapRenderDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MapRenderDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MapRenderDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MapRenderDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MapRenderDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MapRenderDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/MapRenders/all": {
      "get": {
        "tags": [
          "MapRenders"
        ],
        "summary": "GET /api/maprenders/all — every render regardless of publish state.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MapRenderDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MapRenderDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MapRenderDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/MapRenders/catalog": {
      "get": {
        "tags": [
          "MapRenders"
        ],
        "summary": "GET /api/maprenders/catalog — a combined, external read-only view of every render the\r\natlas exposes: the dimension-level primary layers (full tile pyramids) and every\r\nper-location base render (with its owning location and block bounds).",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RenderCatalogResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RenderCatalogResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RenderCatalogResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/MapRenders/{id}": {
      "delete": {
        "tags": [
          "MapRenders"
        ],
        "summary": "DELETE /api/maprenders/{id} — remove a world render.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/tiles/place/{layer}/{lod}/{dim}/{sx}/{sy}/{file}": {
      "get": {
        "tags": [
          "PlaceTiles"
        ],
        "summary": "GET /tiles/place/{layer}/{lod}/{dim}/{sx}/{sy}/t.{tx}.{ty}.webp — proxies the\r\nmatching 2b2t.place tile. All path components are validated so the upstream URL\r\nis built only from known-safe values (no SSRF / path traversal).",
        "parameters": [
          {
            "name": "layer",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lod",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "dim",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sx",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sy",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "file",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/renders": {
      "get": {
        "tags": [
          "Renders"
        ],
        "summary": "GET /api/renders — every per-location render with its owning location, optionally filtered.",
        "parameters": [
          {
            "name": "locationId",
            "in": "query",
            "description": "When set, only renders for this location.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "dimension",
            "in": "query",
            "description": "When set, only renders in this dimension (0 Overworld, 1 Nether, 2 End).",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "scale",
            "in": "query",
            "description": "When set, only renders with this scale label (case-insensitive, e.g. \"256k\").",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum rows to return (default 500, clamped 1..1000).",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Rows to skip for paging (default 0).",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The matching renders, ordered by dimension then id.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LocationRenderDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LocationRenderDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LocationRenderDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/renders/{id}": {
      "get": {
        "tags": [
          "Renders"
        ],
        "summary": "GET /api/renders/{id} — a single render with its owning location.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The render id.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The render, or 404 when it does not exist.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LocationRenderDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationRenderDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationRenderDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/locations/{locationId}/renders": {
      "get": {
        "tags": [
          "Renders"
        ],
        "summary": "GET /api/locations/{locationId}/renders — the renders attached to a location.",
        "parameters": [
          {
            "name": "locationId",
            "in": "path",
            "description": "The owning location's row id.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The location's renders (possibly empty), or 404 when the location does not exist.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LocationRenderDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LocationRenderDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LocationRenderDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/render-settings": {
      "get": {
        "tags": [
          "RenderSettings"
        ],
        "summary": "GET /api/render-settings — the current render flags and raw colour/biome/style config.",
        "responses": {
          "200": {
            "description": "The current settings, or 500 when the renderer profile cannot be read.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RenderSettingsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RenderSettingsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RenderSettingsDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "RenderSettings"
        ],
        "summary": "PUT /api/render-settings — persist the render flags and raw config files.",
        "requestBody": {
          "description": "Token that cancels the request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RenderSettingsDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RenderSettingsDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RenderSettingsDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "No content on success, or 400 with validation errors."
          }
        }
      }
    },
    "/api/render-settings/rerender-status": {
      "get": {
        "tags": [
          "RenderSettings"
        ],
        "summary": "Gets the current bulk re-render queue state.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BulkRerenderStatus"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkRerenderStatus"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkRerenderStatus"
                }
              }
            }
          }
        }
      }
    },
    "/api/render-settings/rerender-all": {
      "post": {
        "tags": [
          "RenderSettings"
        ],
        "summary": "Queues every completed location render for replacement using its archived source WDL.",
        "responses": {
          "200": {
            "description": "Counts of queued jobs and distinct source archives.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BulkRerenderResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkRerenderResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkRerenderResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/render-settings/preview": {
      "post": {
        "tags": [
          "RenderSettings"
        ],
        "summary": "POST /api/render-settings/preview — render a bounded sample area with the current settings.",
        "parameters": [
          {
            "name": "world",
            "in": "query",
            "description": "The staged sample world name to render.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dimension",
            "in": "query",
            "description": "Which dimension to preview (overworld/nether/end).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The rendered PNG (base64) or a failure explanation.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RenderPreviewResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RenderPreviewResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RenderPreviewResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/Revisions": {
      "post": {
        "tags": [
          "Revisions"
        ],
        "summary": "POST /api/revisions — submit a proposed edit to an existing entity.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevisionDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RevisionDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RevisionDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RevisionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevisionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevisionDto"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Revisions"
        ],
        "summary": "GET /api/revisions — all revisions (optionally filtered by status).",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevisionDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevisionDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevisionDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Revisions/pending": {
      "get": {
        "tags": [
          "Revisions"
        ],
        "summary": "GET /api/revisions/pending — proposed edits awaiting review.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevisionDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevisionDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RevisionDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Revisions/{id}/approve": {
      "post": {
        "tags": [
          "Revisions"
        ],
        "summary": "POST /api/revisions/{id}/approve — apply the proposed edit and audit it.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Revisions/{id}/reject": {
      "post": {
        "tags": [
          "Revisions"
        ],
        "summary": "POST /api/revisions/{id}/reject — discard the proposed edit.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/RejectRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/RejectRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/RejectRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Roles": {
      "get": {
        "tags": [
          "Roles"
        ],
        "summary": "Returns effective grants for every editable canonical role.",
        "responses": {
          "200": {
            "description": "A matrix combining database overrides with code defaults and marking roles that are customized.\r\nSuperAdmin is intentionally excluded from the editable set.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RoleMatrix"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleMatrix"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleMatrix"
                }
              }
            }
          }
        }
      }
    },
    "/api/Roles/{role}": {
      "put": {
        "tags": [
          "Roles"
        ],
        "summary": "Replaces one canonical role's effective permission bundle with an explicit database override.",
        "parameters": [
          {
            "name": "role",
            "in": "path",
            "description": "The editable canonical role name; SuperAdmin is rejected.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The complete distinct set of known permission identifiers to grant.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The refreshed role matrix after persistence and audit logging.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RoleMatrix"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleMatrix"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleMatrix"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Roles"
        ],
        "summary": "Deletes a role's override rows so its code-defined permission profile becomes effective again.",
        "parameters": [
          {
            "name": "role",
            "in": "path",
            "description": "The editable canonical role name to reset.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The refreshed role matrix after persistence and audit logging.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RoleMatrix"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleMatrix"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleMatrix"
                }
              }
            }
          }
        }
      }
    },
    "/api/Warps": {
      "get": {
        "tags": [
          "Warps"
        ],
        "summary": "Returns Archive warp records, optionally filtered by owning location.",
        "parameters": [
          {
            "name": "locationId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 500
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WarpRecord"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WarpRecord"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WarpRecord"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Warps/{id}": {
      "get": {
        "tags": [
          "Warps"
        ],
        "summary": "Returns one Archive warp with owning-location context.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WarpRecord"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WarpRecord"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WarpRecord"
                }
              }
            }
          }
        }
      }
    },
    "/api/warps/{id}/world-download": {
      "get": {
        "tags": [
          "WorldDownloads"
        ],
        "summary": "Returns metadata for one downloadable collector WDL without exposing its host path.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WorldDownloadRecord"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorldDownloadRecord"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorldDownloadRecord"
                }
              }
            }
          }
        }
      }
    },
    "/api/warps/{id}/world-download.zip": {
      "get": {
        "tags": [
          "WorldDownloads"
        ],
        "summary": "Streams the immutable exact-footprint Minecraft Java save associated with an Archive warp.\r\nSupports byte ranges and a digest ETag so clients can resume and caches can revalidate safely.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/renders/{id}/world-download": {
      "get": {
        "tags": [
          "WorldDownloads"
        ],
        "summary": "Returns metadata for a verified preserved source WDL used by a pre-Archive render.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WorldDownloadRecord"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorldDownloadRecord"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorldDownloadRecord"
                }
              }
            }
          }
        }
      }
    },
    "/api/renders/{id}/world-download.zip": {
      "get": {
        "tags": [
          "WorldDownloads"
        ],
        "summary": "Streams the immutable source WDL associated with a verified public pre-Archive render.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ArchiveCollectorStatusDto": {
        "type": "object",
        "properties": {
          "available": {
            "type": "boolean",
            "description": "Whether the collector checkpoint files were readable."
          },
          "active": {
            "type": "boolean",
            "description": "Whether at least one current worker is live and the supervisor heartbeat is fresh."
          },
          "stale": {
            "type": "boolean",
            "description": "Whether the supervisor heartbeat exceeded the configured freshness limit."
          },
          "status": {
            "type": "string",
            "description": "Compact display state such as Active, Idle, Complete, Stale, or Unavailable."
          },
          "phase": {
            "type": "string",
            "description": "Human-readable current collector phase."
          },
          "updatedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Last collector supervisor heartbeat in UTC.",
            "format": "date-time"
          },
          "refreshedUtc": {
            "type": "string",
            "description": "Time at which the API assembled this snapshot.",
            "format": "date-time"
          },
          "activeWorkers": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Number of verified live collector workers.",
            "format": "int32"
          },
          "fastLaneWorkers": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Configured workers that use the bounded 30-minute discovery lane.",
            "format": "int32"
          },
          "longRunningWorkers": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Configured workers that finish captures deferred by discovery lanes.",
            "format": "int32"
          },
          "deferredToLongRunning": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Number of durable fast-lane deferrals routed to long-running workers.",
            "format": "int32"
          },
          "queueTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Total number of applicable Archive warps in the current queue.",
            "format": "int32"
          },
          "checked": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Number of queue entries resolved as saved or unavailable.",
            "format": "int32"
          },
          "saved": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Number of queue entries with final-standard captures.",
            "format": "int32"
          },
          "unavailable": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Number of queue entries confirmed unavailable by The Archive.",
            "format": "int32"
          },
          "remaining": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Number of unresolved queue entries.",
            "format": "int32"
          },
          "catalogDiscovered": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Total records currently known to the collector catalog.",
            "format": "int32"
          },
          "retryable": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Number of checkpoint entries eligible for a later retry.",
            "format": "int32"
          },
          "progressPercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "description": "Percentage of the current applicable queue resolved.",
            "format": "double"
          },
          "handoffStage": {
            "type": "string",
            "description": "Current rolling production-handoff stage."
          },
          "handoffSubmitted": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Number of captures submitted during the current handoff pass.",
            "format": "int32"
          },
          "nextScheduledRun": {
            "type": [
              "null",
              "string"
            ],
            "description": "Next configured weekly catalog check in Blackbox local time.",
            "format": "date-time"
          },
          "scheduleLabel": {
            "type": "string",
            "description": "Human-readable recurring schedule."
          },
          "workers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ArchiveCollectorWorkerStatusDto"
            },
            "description": "Sanitized per-worker progress ordered by worker identifier."
          }
        },
        "description": "Sanitized operational status for the Blackbox Archive collector."
      },
      "ArchiveCollectorWorkerStatusDto": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Stable one-based worker number.",
            "format": "int32"
          },
          "profile": {
            "type": "string",
            "description": "Collector profile label; this is not an authentication credential."
          },
          "minecraftVersion": {
            "type": [
              "null",
              "string"
            ],
            "description": "Fully qualified Minecraft/Fabric launch version used by the current attempt."
          },
          "lane": {
            "type": "string",
            "description": "Collector scheduling lane: throughput or large-wdl."
          },
          "adaptiveMaximumRuntimeSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Maximum adaptive capture runtime for this lane.",
            "format": "int32"
          },
          "deferredIn": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Number of deferred captures routed into this worker.",
            "format": "int32"
          },
          "deferredOut": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Number of captures this fast worker deferred to a long lane.",
            "format": "int32"
          },
          "status": {
            "type": "string",
            "description": "Compact display state for the worker."
          },
          "outcome": {
            "type": "string",
            "description": "Stable, sanitized machine-readable outcome for the current launch."
          },
          "running": {
            "type": "boolean",
            "description": "Whether the recorded process is currently alive."
          },
          "restarting": {
            "type": "boolean",
            "description": "Whether the supervisor reports a bounded restart in progress."
          },
          "warp": {
            "type": [
              "null",
              "string"
            ],
            "description": "Current or most recently assigned Archive warp."
          },
          "displayName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Human-readable warp label."
          },
          "chunksReceived": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Chunks received during the current coverage scan.",
            "format": "int32"
          },
          "missingChunks": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Requested chunks not yet received during the current scan.",
            "format": "int32"
          },
          "waypoint": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Current adaptive scan waypoint.",
            "format": "int32"
          },
          "waypointTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Total adaptive scan waypoints.",
            "format": "int32"
          },
          "assigned": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Total queue entries assigned to the worker shard.",
            "format": "int32"
          },
          "completed": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Queue entries completed by the worker shard.",
            "format": "int32"
          },
          "restartCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Bounded supervisor restart count.",
            "format": "int32"
          },
          "logUpdatedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Last write time of the worker game log.",
            "format": "date-time"
          }
        },
        "description": "Sanitized status for one isolated Minecraft collector account."
      },
      "ArchiveWdlEvidence": {
        "type": "object",
        "properties": {
          "downloaderKind": {
            "type": "string",
            "description": "Gets or sets the recognized downloader family."
          },
          "reportSchemaVersion": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the newest recognized machine-report schema version.",
            "format": "int32"
          },
          "reportSessionCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of valid completed machine-report sessions.",
            "format": "int32"
          },
          "startedAtUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the earliest reported capture start.",
            "format": "date-time"
          },
          "finishedAtUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the newest reported capture finish.",
            "format": "date-time"
          },
          "completionStatus": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the latest reported finish state: complete, partial, or interrupted."
          },
          "hasPendingCapture": {
            "type": "boolean",
            "description": "Gets or sets whether the downloader left its unfinished-session sentinel in the save."
          },
          "downloadName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the downloader-supplied capture name."
          },
          "sourceAddress": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the captured server address."
          },
          "sourceName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the captured server-list name."
          },
          "sourceMotd": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the captured server MOTD."
          },
          "sourceKind": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the downloader's source classification, such as multiplayer or replay."
          },
          "serverBrand": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the server software brand recorded at capture time."
          },
          "minecraftVersion": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the Minecraft version used for the latest capture."
          },
          "modVersion": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the Archive World Downloader version used for the latest capture."
          },
          "loaderName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the mod loader name used for the latest capture."
          },
          "loaderVersion": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the mod loader version used for the latest capture."
          },
          "reportedDimension": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the downloader-reported, possibly normalized dimension."
          },
          "playerDimension": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the raw dimension stored with player NBT."
          },
          "playerX": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the downloaded-player X coordinate.",
            "format": "double"
          },
          "playerY": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the downloaded-player Y coordinate.",
            "format": "double"
          },
          "playerZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the downloaded-player Z coordinate.",
            "format": "double"
          },
          "capturedChunkCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the latest session's received chunk count.",
            "format": "int32"
          },
          "savedChunkCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the latest post-save on-disk chunk count.",
            "format": "int32"
          },
          "entityCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the latest session's captured entity count.",
            "format": "int32"
          },
          "containerCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the latest session's captured container count.",
            "format": "int32"
          },
          "isArchiveSource": {
            "type": "boolean",
            "description": "Gets or sets whether bounded metadata identifies a known Archive address or name."
          },
          "nameCandidates": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets names eligible for reviewed location/warp matching."
          },
          "rawDimensionIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets raw namespaced dimension identifiers retained by the capture."
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets nonfatal metadata parsing warnings."
          }
        },
        "description": "Bounded, reviewable provenance and identity evidence extracted from an Archive-style WDL."
      },
      "Attachment": {
        "required": [
          "locationRowid",
          "fileName",
          "path"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the unique identifier for the attachment.",
            "format": "int32"
          },
          "apiUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the public API URL for this attachment metadata record."
          },
          "locationRowid": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the ID of the associated location.",
            "format": "int32"
          },
          "fileName": {
            "maxLength": 255,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the name of the file."
          },
          "path": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the path to the file / URL."
          },
          "mediaType": {
            "maxLength": 32,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the normalized media kind: Image, Video, Wiki, or Link."
          },
          "thumbnailPath": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets an optional lightweight HTTPS preview image."
          },
          "sourceUrl": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the original publication page retained for provenance."
          },
          "caption": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets a concise public caption."
          },
          "attribution": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets creator, archive, and license credit."
          },
          "dateAddedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the date and time when the attachment was added (UTC)."
          }
        },
        "description": "Represents a file attachment associated with a location."
      },
      "AttachmentRecord": {
        "required": [
          "locationRowid",
          "fileName",
          "path"
        ],
        "type": "object",
        "properties": {
          "locationName": {
            "type": "string",
            "description": "Gets or sets the owning location's display name."
          },
          "dimension": {
            "description": "Gets or sets the owning location's dimension.",
            "$ref": "#/components/schemas/Dimension"
          },
          "locationUrl": {
            "type": "string",
            "description": "Gets or sets the owning location's canonical entity URL."
          },
          "locationApiUrl": {
            "type": "string",
            "description": "Gets or sets the owning location's public API URL."
          },
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the unique identifier for the attachment.",
            "format": "int32"
          },
          "apiUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the public API URL for this attachment metadata record."
          },
          "locationRowid": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the ID of the associated location.",
            "format": "int32"
          },
          "fileName": {
            "maxLength": 255,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the name of the file."
          },
          "path": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the path to the file / URL."
          },
          "mediaType": {
            "maxLength": 32,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the normalized media kind: Image, Video, Wiki, or Link."
          },
          "thumbnailPath": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets an optional lightweight HTTPS preview image."
          },
          "sourceUrl": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the original publication page retained for provenance."
          },
          "caption": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets a concise public caption."
          },
          "attribution": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets creator, archive, and license credit."
          },
          "dateAddedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the date and time when the attachment was added (UTC)."
          }
        },
        "description": "A public attachment record with enough location context for independent API consumers."
      },
      "AuditLogEntry": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the audit entry's persistent identifier.",
            "format": "int32"
          },
          "action": {
            "type": "string",
            "description": "Gets or sets the machine-readable action name, such as `highway.update`."
          },
          "entityType": {
            "type": "string",
            "description": "Gets or sets the kind of entity affected by the action."
          },
          "entityId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the persistent identifier of the affected entity.",
            "format": "int32"
          },
          "userId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the acting user's identifier, or `null` for a system action.",
            "format": "int32"
          },
          "username": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the acting user's display name when available."
          },
          "summary": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets a human-readable summary of the action."
          },
          "detailsJson": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets optional action-specific details serialized as a JSON value."
          },
          "createdUtc": {
            "type": "string",
            "description": "Gets or sets the UTC time at which the action was recorded.",
            "format": "date-time"
          }
        },
        "description": "A read-only audit-log entry (GAMEPLAN §15) exposed via the API."
      },
      "AuthResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Gets or sets whether the authentication operation succeeded."
          },
          "message": {
            "type": "string",
            "description": "Gets or sets the user-facing result or failure message."
          },
          "token": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the bearer token issued on success, or `null` when no token was issued."
          },
          "user": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gets or sets the authenticated user's profile and resolved permissions when authentication succeeds.",
                "$ref": "#/components/schemas/User"
              }
            ]
          }
        },
        "description": "Authentication response model."
      },
      "BulkRerenderResult": {
        "type": "object",
        "properties": {
          "queuedJobs": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of completed jobs queued for rebuilding.",
            "format": "int32"
          },
          "distinctArchives": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of distinct content-addressed WDL archives involved.",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "Gets or sets an operator-facing summary."
          }
        },
        "description": "Result of preflighting and queuing a bulk re-render of every completed location render."
      },
      "BulkRerenderStatus": {
        "type": "object",
        "properties": {
          "queued": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets jobs waiting to be claimed.",
            "format": "int32"
          },
          "running": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets jobs currently claimed, running, or completing.",
            "format": "int32"
          },
          "failed": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets jobs that failed while marked for re-render.",
            "format": "int32"
          }
        },
        "description": "Current state of the bulk re-render queue."
      },
      "ChunkedUploadSession": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the opaque upload identifier."
          },
          "chunkSizeBytes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the maximum bytes per chunk.",
            "format": "int32"
          }
        },
        "description": "Identifies a resumable WDL upload and its bounded chunk size."
      },
      "ChunkedUploadStartRequest": {
        "type": "object",
        "properties": {
          "metadata": {
            "type": "string",
            "description": "Gets or sets JSON-encoded IngestionJobRequest metadata."
          },
          "fileName": {
            "type": "string",
            "description": "Gets or sets the original ZIP filename."
          },
          "totalBytes": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the total ZIP length in bytes.",
            "format": "int64"
          }
        },
        "description": "Starts a resumable, proxy-safe WDL upload session."
      },
      "CreateUserRequest": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "Gets or sets the unique sign-in name for the new user."
          },
          "password": {
            "type": "string",
            "description": "Gets or sets the plaintext credential to hash when the user is created."
          },
          "discordHandle": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the user's optional Discord handle."
          },
          "role": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the canonical role identifier to assign."
          },
          "isAdmin": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Gets or sets the legacy administrator flag when explicitly supplied."
          },
          "isActive": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Gets or sets whether the account may authenticate when explicitly supplied."
          }
        },
        "description": "Create user request model."
      },
      "DatabaseStats": {
        "type": "object",
        "properties": {
          "locations": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the total number of stored locations.",
            "format": "int32"
          },
          "warps": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the total number of stored warp aliases.",
            "format": "int32"
          },
          "attachments": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the total number of stored attachment links.",
            "format": "int32"
          },
          "renders": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the total number of stored render records.",
            "format": "int32"
          },
          "locationsMonth": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of locations added during the current month.",
            "format": "int32"
          },
          "warpsMonth": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of warp aliases added during the current month.",
            "format": "int32"
          },
          "attachmentsMonth": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of attachment links added during the current month.",
            "format": "int32"
          },
          "rendersMonth": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of render records added during the current month.",
            "format": "int32"
          }
        },
        "description": "Database statistics model."
      },
      "Dimension": {
        "type": "integer",
        "description": "Represents the different dimensions in the game."
      },
      "DimensionRenderOptions": {
        "type": "object",
        "properties": {
          "dimension": {
            "type": "string",
            "description": "Gets or sets the dimension key: `overworld`, `nether`, or `end`."
          },
          "shadows": {
            "type": "string",
            "description": "Gets or sets the shadow mode: `default`, `false`, `true`, `2d`, `3d`, or `3do`."
          },
          "night": {
            "type": "boolean",
            "description": "Gets or sets whether night lighting is used."
          },
          "topY": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the highest Y coordinate rendered (top slice), or null for the default.",
            "format": "int32"
          },
          "bottomY": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the lowest Y coordinate rendered (bottom slice), or null for the default.",
            "format": "int32"
          },
          "background": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the background colour as `#rrggbb`, or null for the default."
          },
          "imageFormat": {
            "type": "string",
            "description": "Gets or sets the output image format (png, jpeg, webp, bmp)."
          }
        },
        "description": "Structured, intuitive render flags for one dimension, mapped to/from unMINED CLI arguments."
      },
      "EnrichmentRunRequest": {
        "type": "object",
        "properties": {
          "autoApply": {
            "type": "boolean",
            "description": "Gets or sets whether confident, coordinate-confirmed matches are auto-applied (else queued)."
          }
        },
        "description": "Options for a complete eligible-location enrichment run submitted from the admin page."
      },
      "EnrichmentRunStatusDto": {
        "type": "object",
        "properties": {
          "runId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the unique id of this run, or null before the first run since API startup."
          },
          "state": {
            "type": "string",
            "description": "Gets or sets idle, running, completed, failed, or cancelled."
          },
          "isRunning": {
            "type": "boolean",
            "description": "Gets or sets whether the server is actively processing the run."
          },
          "autoApply": {
            "type": "boolean",
            "description": "Gets or sets whether the run auto-applies sufficiently confident matches."
          },
          "startedBy": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the operator who started the run."
          },
          "startedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the UTC start time.",
            "format": "date-time"
          },
          "updatedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the UTC time of the latest progress update.",
            "format": "date-time"
          },
          "completedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the UTC completion, failure, or cancellation time.",
            "format": "date-time"
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of eligible locations in the run.",
            "format": "int32"
          },
          "scanned": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of locations examined so far.",
            "format": "int32"
          },
          "matched": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of locations that produced a usable match.",
            "format": "int32"
          },
          "autoApplied": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of confident matches auto-applied.",
            "format": "int32"
          },
          "queued": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of suggestions queued for review.",
            "format": "int32"
          },
          "skipped": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of locations that produced no new suggestion.",
            "format": "int32"
          },
          "errors": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of individual locations that failed but did not stop the batch.",
            "format": "int32"
          },
          "currentLocationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the location currently being examined.",
            "format": "int32"
          },
          "currentLocationName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the name of the location currently being examined."
          },
          "message": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets a human-readable run result or diagnostic."
          },
          "progressPercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "description": "Gets or sets progress from zero through one hundred.",
            "format": "double"
          },
          "elapsedSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets elapsed wall time in whole seconds.",
            "format": "int32"
          }
        },
        "description": "A server-owned enrichment run snapshot. Unlike browser-local button state, this survives page refreshes\r\nand is shared by every administrator viewing the site."
      },
      "EnrichmentStatusDto": {
        "type": "object",
        "properties": {
          "run": {
            "description": "Gets or sets the server-owned batch run, including the last completed run.",
            "$ref": "#/components/schemas/EnrichmentRunStatusDto"
          },
          "enabled": {
            "type": "boolean",
            "description": "Gets or sets whether the engine is enabled in configuration."
          },
          "paused": {
            "type": "boolean",
            "description": "Gets or sets whether the engine is currently paused by the GPU game-mode lock."
          },
          "model": {
            "type": "string",
            "description": "Gets or sets the model tag used for description drafting and match ranking."
          },
          "wikiApiBase": {
            "type": "string",
            "description": "Gets or sets the MediaWiki endpoint the engine reads from."
          },
          "autoApplyMinConfidence": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "description": "Gets or sets the minimum confidence at which a match is auto-applied.",
            "format": "double"
          },
          "coordinateToleranceBlocks": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the coordinate agreement tolerance, in Overworld blocks.",
            "format": "int32"
          },
          "locationsMissingMetadata": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of locations still missing a wiki link or description.",
            "format": "int32"
          },
          "locationsMissingGroupAttributions": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of explicit wiki group/build candidates not yet linked in Atlas.",
            "format": "int32"
          },
          "unrepresentedGroupCandidates": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets unrepresented wiki groups that explicitly name at least one Atlas build.",
            "format": "int32"
          },
          "pendingReviewCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of AI enrichments currently awaiting review (Applied or Pending).",
            "format": "int32"
          },
          "groupEvidenceAvailable": {
            "type": "boolean",
            "description": "Gets or sets whether a usable revision-pinned group evidence index is loaded."
          },
          "groupEvidenceGeneratedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets when the loaded group evidence index was generated.",
            "format": "date-time"
          },
          "groupEvidenceArticleCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of audited group articles in the evidence index.",
            "format": "int32"
          },
          "groupEvidenceMessage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets a diagnostic when the group evidence index is missing, stale, or invalid."
          }
        },
        "description": "The current operational state of the local AI wiki-enrichment engine, shown on the admin page so an\r\noperator can see whether a run will do anything before starting one."
      },
      "Group": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the group's persistent identifier.",
            "format": "int32"
          },
          "canonicalUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the canonical crawlable entity URL for this group."
          },
          "interactiveUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the interactive Atlas group-page URL."
          },
          "apiUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the public API URL for this group record."
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the group's public name."
          },
          "aliases": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets reviewed alternate names; this public projection is derived from the canonical name."
          },
          "type": {
            "description": "Gets or sets the group's primary activity category.",
            "$ref": "#/components/schemas/GroupType"
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets an optional description of the group."
          },
          "color": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional render hint (hex) for markers/labels."
          },
          "wikiUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets an optional absolute URL for the group's wiki article."
          },
          "websiteUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the group's official website, when one is known."
          },
          "discordUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the group's public Discord invite, when one is known and still current."
          },
          "logoUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets a public logo or representative emblem URL."
          },
          "logoSourceUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the page that identifies the source and licensing context of the logo."
          },
          "founded": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets a human-readable founding date because many historical dates are approximate."
          },
          "status": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the group's documented state, such as Active, Inactive, or Disbanded."
          },
          "locationCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of Atlas locations explicitly attributed to the group.",
            "format": "int32"
          },
          "highwayCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of Atlas highways explicitly attributed to the group.",
            "format": "int32"
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupLocationSummary"
            },
            "description": "Gets or sets locations explicitly attributed to this group on the detail endpoint."
          },
          "highways": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupHighwaySummary"
            },
            "description": "Gets or sets highways explicitly attributed to this group on the detail endpoint."
          },
          "dateAddedUtc": {
            "type": "string",
            "description": "Gets or sets the UTC time at which the group was added to the Atlas.",
            "format": "date-time"
          },
          "modifiedUtc": {
            "type": "string",
            "description": "Gets or sets when the public group record was last materially changed.",
            "format": "date-time"
          }
        },
        "description": "A 2b2t group/organisation used to attribute highways and bases (GAMEPLAN §15)."
      },
      "GroupAttributionSuggestion": {
        "type": "object",
        "properties": {
          "groupId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the existing Atlas group identifier.",
            "format": "int32"
          },
          "groupName": {
            "type": "string",
            "description": "Gets or sets the canonical Atlas group name."
          },
          "role": {
            "type": "string",
            "description": "Gets or sets the proposed relationship role."
          },
          "evidenceUrl": {
            "type": "string",
            "description": "Gets or sets the source article URL."
          },
          "sourceRevisionId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the pinned MediaWiki revision identifier.",
            "format": "int64"
          },
          "evidence": {
            "type": "string",
            "description": "Gets or sets the explicit evidence type, such as an infobox base list."
          },
          "confidence": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "description": "Gets or sets the deterministic relationship confidence.",
            "format": "double"
          },
          "autoApplyEligible": {
            "type": "boolean",
            "description": "Gets or sets whether the relationship meets the strict automatic-application policy."
          }
        },
        "description": "A reviewable group/build relationship derived from explicit, revision-pinned source evidence."
      },
      "GroupDiscoveryRunRequest": {
        "type": "object",
        "properties": {
          "maxGroups": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Maximum number of new group proposals to enqueue.",
            "format": "int32"
          },
          "draftDescriptions": {
            "type": "boolean",
            "description": "Whether the local model may draft review-only summaries."
          }
        },
        "description": "Options for generating review-only group discovery revisions."
      },
      "GroupDiscoveryRunSummary": {
        "type": "object",
        "properties": {
          "ran": {
            "type": "boolean",
            "description": "Whether discovery was executed."
          },
          "message": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional execution or validation message."
          },
          "candidates": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Number of eligible candidates found.",
            "format": "int32"
          },
          "queued": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Number of moderation revisions queued.",
            "format": "int32"
          },
          "skipped": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Number of candidates skipped by policy or deduplication.",
            "format": "int32"
          }
        },
        "description": "Summary of a group discovery run."
      },
      "GroupHighwaySummary": {
        "type": "object",
        "properties": {
          "highwayId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the highway identifier.",
            "format": "int32"
          },
          "highwayApiUrl": {
            "type": "string",
            "description": "Gets or sets the public API URL for the highway record."
          },
          "mapUrl": {
            "type": "string",
            "description": "Gets or sets a map URL centered on the highway's dimension."
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the public highway name."
          },
          "dimension": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the Minecraft dimension identifier.",
            "format": "int32"
          },
          "role": {
            "type": "string",
            "description": "Gets or sets this group's documented role on the route."
          }
        },
        "description": "A compact, navigable highway attributed to a group."
      },
      "GroupLocationSummary": {
        "type": "object",
        "properties": {
          "locationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the Atlas location identifier.",
            "format": "int32"
          },
          "locationUrl": {
            "type": "string",
            "description": "Gets or sets the canonical crawlable URL for the location."
          },
          "locationInteractiveUrl": {
            "type": "string",
            "description": "Gets or sets the interactive Atlas URL for the location."
          },
          "locationApiUrl": {
            "type": "string",
            "description": "Gets or sets the public API URL for the location."
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the public location name."
          },
          "role": {
            "type": "string",
            "description": "Gets or sets the group's role at the location."
          },
          "dimension": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the Minecraft dimension identifier.",
            "format": "int32"
          },
          "x": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the location's X coordinate.",
            "format": "int32"
          },
          "z": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the location's Z coordinate.",
            "format": "int32"
          },
          "renderCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of public renders linked to the location.",
            "format": "int32"
          }
        },
        "description": "A compact, navigable Atlas location attributed to a group."
      },
      "GroupType": {
        "type": "integer",
        "description": "What a group primarily does on 2b2t."
      },
      "Highway": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the highway's persistent identifier.",
            "format": "int32"
          },
          "apiUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the public API URL for this highway record."
          },
          "mapUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets an interactive Atlas map URL for this highway."
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the highway's public name."
          },
          "slug": {
            "type": "string",
            "description": "Gets or sets the stable URL-safe identifier used by API records and seeds."
          },
          "dimension": {
            "description": "Dimension the geometry belongs to.",
            "$ref": "#/components/schemas/Dimension"
          },
          "category": {
            "description": "Gets or sets the highway's geometric category.",
            "$ref": "#/components/schemas/HighwayCategory"
          },
          "points": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HighwayPoint"
            },
            "description": "Ordered path in native dimension coordinates."
          },
          "ringRadius": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Radius (Nether units) for ring / diamond-ring roads.",
            "format": "int32"
          },
          "width": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Walkable path width (blocks).",
            "format": "int32"
          },
          "height": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Vertical clearance / tunnel headroom (blocks); null = open-air.",
            "format": "int32"
          },
          "yLevel": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Build height (roof ≈128, lava ≈10 …).",
            "format": "int32"
          },
          "paved": {
            "type": "boolean",
            "description": "Gets or sets whether the route has a deliberately constructed surface."
          },
          "pavingMaterial": {
            "description": "Gets or sets the predominant material used for the paved surface.",
            "$ref": "#/components/schemas/PavingMaterial"
          },
          "walls": {
            "type": "boolean",
            "description": "Gets or sets whether the route has side walls."
          },
          "enclosed": {
            "type": "boolean",
            "description": "Gets or sets whether the route is enclosed by walls and a ceiling."
          },
          "isRoofHighway": {
            "type": "boolean",
            "description": "Gets or sets whether the route runs on the Nether roof."
          },
          "lit": {
            "type": "boolean",
            "description": "Gets or sets whether the route has installed lighting."
          },
          "status": {
            "description": "Gets or sets the recorded construction or maintenance condition.",
            "$ref": "#/components/schemas/HighwayStatus"
          },
          "builderGroupId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Attributed builder group (FK → Group), if known.",
            "format": "int32"
          },
          "builderGroupName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Resolved builder-group name for display (server-populated; not stored here)."
          },
          "builderGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HighwayGroupAttribution"
            },
            "description": "All reviewed builder, maintainer, and contributor attributions for this route."
          },
          "lengthBlocks": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Computed/stored path length in blocks.",
            "format": "int32"
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets an optional description of the route and its history."
          },
          "wikiUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets an optional absolute URL for the highway's wiki article."
          },
          "videoUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets an optional absolute URL for related video coverage."
          },
          "color": {
            "type": [
              "null",
              "string"
            ],
            "description": "Render hint; falls back to Category defaults when null."
          },
          "displayWeight": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets an optional map line weight override.",
            "format": "int32"
          },
          "visibility": {
            "description": "Gets or sets whether the record is eligible for public listing.",
            "$ref": "#/components/schemas/HighwayVisibility"
          },
          "reviewStatus": {
            "description": "Gets or sets the record's moderation state.",
            "$ref": "#/components/schemas/ReviewStatus"
          },
          "createdByUserId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the identifier of the user who created the record.",
            "format": "int32"
          },
          "lastEditedByUserId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the identifier of the user who most recently edited the record.",
            "format": "int32"
          },
          "dateAddedUtc": {
            "type": "string",
            "description": "Gets or sets the UTC time at which the record was added.",
            "format": "date-time"
          },
          "lastVerifiedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the UTC time at which the route was last verified in-game.",
            "format": "date-time"
          }
        },
        "description": "A 2b2t highway (lore-accurate; see GAMEPLAN §14). Geometry is stored in\r\nnative dimension coordinates. Rich attributes (material, walls, status…) let the\r\nmap show <em>what kind</em> of road it is and approved editors keep it current."
      },
      "HighwayCategory": {
        "type": "integer",
        "description": "Geometry / role of a highway (drives default colour + weight)."
      },
      "HighwayGroupAttribution": {
        "type": "object",
        "properties": {
          "groupId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the attributed group identifier.",
            "format": "int32"
          },
          "groupUrl": {
            "type": "string",
            "description": "Gets or sets the group's canonical crawlable entity URL."
          },
          "groupApiUrl": {
            "type": "string",
            "description": "Gets or sets the group's public API URL."
          },
          "groupName": {
            "type": "string",
            "description": "Gets or sets the attributed group's public name."
          },
          "role": {
            "type": "string",
            "description": "Gets or sets its role, such as Primary builder, Predecessor, or Contributor."
          },
          "evidence": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets a concise public source note."
          }
        },
        "description": "A reviewed group contribution to one highway."
      },
      "HighwayPoint": {
        "type": "object",
        "properties": {
          "x": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the X coordinate in the highway's native dimension.",
            "format": "int32"
          },
          "z": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the Z coordinate in the highway's native dimension.",
            "format": "int32"
          }
        },
        "description": "A single point on a highway path in the route's native dimension coordinates."
      },
      "HighwayStatus": {
        "type": "integer",
        "description": "Build/maintenance condition of a highway."
      },
      "HighwayVisibility": {
        "type": "integer",
        "description": "Public visibility of a highway record."
      },
      "IFormFile": {
        "type": "string",
        "format": "binary"
      },
      "IngestionDimensionInspection": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Gets or sets `overworld`, `nether`, or `end`."
          },
          "storageEra": {
            "type": "string",
            "description": "Gets or sets `anvil`, `mcregion`, or `legacy-alpha` for this dimension."
          },
          "storageFileCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of validated region or chunk-storage files.",
            "format": "int32"
          },
          "chunkCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of present chunks found in validated storage.",
            "format": "int32"
          },
          "nativeTileCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the native tiles implied by the authoritative chunk bounds.",
            "format": "int32"
          },
          "minX": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the inclusive minimum block X coordinate.",
            "format": "int32"
          },
          "minZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the inclusive minimum block Z coordinate.",
            "format": "int32"
          },
          "maxXExclusive": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the exclusive maximum block X coordinate.",
            "format": "int32"
          },
          "maxZExclusive": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the exclusive maximum block Z coordinate.",
            "format": "int32"
          },
          "skippedRegionCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of region files skipped as corrupt or truncated during inspection.",
            "format": "int32"
          },
          "skippedChunkCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of individual chunks skipped as corrupt or unreadable during inspection.",
            "format": "int32"
          }
        },
        "description": "Summarizes storage files, chunks, native tiles, and block bounds for one Minecraft dimension."
      },
      "IngestionJobDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the job's public, opaque identifier."
          },
          "originalFileName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the original uploader-visible ZIP filename."
          },
          "status": {
            "type": "string",
            "description": "Gets or sets the queue state, such as `queued`, `needs-match`, `claimed`, `running`, `completed`, `failed`, or `cancelled`."
          },
          "stage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the worker pipeline stage currently associated with the job."
          },
          "message": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the latest operator-safe progress or failure message."
          },
          "progressPercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets overall progress from 0 through 100.",
            "format": "int32"
          },
          "etaSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the estimated remaining seconds, or `null` when unavailable or terminal.",
            "format": "int32"
          },
          "archiveSha256": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the lowercase SHA-256 digest of the immutable intake archive after inspection."
          },
          "claimToken": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the one-lease worker secret returned only by a successful claim response."
          },
          "attemptCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of times the job has been claimed, including retries after expired leases.",
            "format": "int32"
          },
          "rerenderRequested": {
            "type": "boolean",
            "description": "Gets or sets whether this completed job is being rebuilt from its archived source."
          },
          "renderTopY": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets an optional inclusive top-Y render cutoff selected from reviewed historical evidence.",
            "format": "int32"
          },
          "requestedUtc": {
            "type": "string",
            "description": "Gets or sets the UTC time at which the job was queued.",
            "format": "date-time"
          },
          "claimedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the UTC time of the most recent successful claim.",
            "format": "date-time"
          },
          "leaseExpiresUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the UTC expiry of the current worker lease.",
            "format": "date-time"
          },
          "updatedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the UTC time of the most recent status update.",
            "format": "date-time"
          },
          "completedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the UTC time at which the job entered a terminal state.",
            "format": "date-time"
          },
          "inspection": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gets or sets the worker's bounded inspection summary for the Minecraft world.",
                "$ref": "#/components/schemas/IngestionWorldInspection"
              }
            ]
          },
          "archiveEvidence": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gets or sets untrusted downloader/provenance evidence captured before or during preparation.",
                "$ref": "#/components/schemas/ArchiveWdlEvidence"
              }
            ]
          },
          "matchSuggestions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/LocationMatchSuggestion"
            },
            "description": "Gets or sets ranked existing-location suggestions when the job is awaiting a manual match."
          },
          "archiveWarpSource": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the evidence source used to infer string? IngestionJobRequest.ArchiveWarpName."
          },
          "warpId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the warp row reused or created for the immutable WDL.",
            "format": "int32"
          },
          "matchDecision": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the persisted automatic/manual location decision."
          },
          "matchConfidence": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the confidence of the persisted match decision.",
            "format": "double"
          },
          "matchReason": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the concise evidence supporting the persisted match decision."
          },
          "intakeFileName": {
            "type": "string",
            "description": "Gets or sets the portable ASCII `.zip` basename expected in the worker intake directory."
          },
          "slug": {
            "type": "string",
            "description": "Gets or sets the unique lowercase path segment used for the job and published tile directory."
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the location and render name shown by the Atlas."
          },
          "worldDownloadDate": {
            "type": "string",
            "description": "Gets or sets the non-future world-download date in `yyyy-MM-dd` format."
          },
          "source": {
            "type": "string",
            "description": "Gets or sets the human-readable source or provenance attribution."
          },
          "scale": {
            "type": "string",
            "description": "Gets or sets the display scale tag, such as `5k`, `256k`, or `1m`."
          },
          "dayNight": {
            "type": "boolean",
            "description": "Gets or sets whether separate day and night tiles are produced; worker jobs always enable this."
          },
          "existingLocationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the location to receive the render, or `null` to create a location at the render center.",
            "format": "int32"
          },
          "useArchiveLastPlayed": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Gets or sets whether a valid `level.dat` LastPlayed value may replace string IngestionJobRequest.WorldDownloadDate; `null` defaults to enabled."
          },
          "dimension": {
            "type": "string",
            "description": "Gets or sets the target render dimension: `overworld`, `nether`, or `end`."
          },
          "worldRoot": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets an optional archive-relative world root when a ZIP contains multiple worlds."
          },
          "archiveWarpName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets an optional operator-confirmed Archive command name. Normally the server derives this\r\nfrom a recognized downloader report or an Archive-attributed filename."
          },
          "archiveWarpX": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the live Archive landing X coordinate captured immediately after the warp.",
            "format": "double"
          },
          "archiveWarpY": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the live Archive landing Y coordinate captured immediately after the warp.",
            "format": "double"
          },
          "archiveWarpZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the live Archive landing Z coordinate captured immediately after the warp.",
            "format": "double"
          }
        },
        "description": "Represents a queued ingestion job and its server-managed execution state."
      },
      "IngestionJobRequest": {
        "type": "object",
        "properties": {
          "intakeFileName": {
            "type": "string",
            "description": "Gets or sets the portable ASCII `.zip` basename expected in the worker intake directory."
          },
          "slug": {
            "type": "string",
            "description": "Gets or sets the unique lowercase path segment used for the job and published tile directory."
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the location and render name shown by the Atlas."
          },
          "worldDownloadDate": {
            "type": "string",
            "description": "Gets or sets the non-future world-download date in `yyyy-MM-dd` format."
          },
          "source": {
            "type": "string",
            "description": "Gets or sets the human-readable source or provenance attribution."
          },
          "scale": {
            "type": "string",
            "description": "Gets or sets the display scale tag, such as `5k`, `256k`, or `1m`."
          },
          "dayNight": {
            "type": "boolean",
            "description": "Gets or sets whether separate day and night tiles are produced; worker jobs always enable this."
          },
          "existingLocationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the location to receive the render, or `null` to create a location at the render center.",
            "format": "int32"
          },
          "useArchiveLastPlayed": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Gets or sets whether a valid `level.dat` LastPlayed value may replace string IngestionJobRequest.WorldDownloadDate; `null` defaults to enabled."
          },
          "dimension": {
            "type": "string",
            "description": "Gets or sets the target render dimension: `overworld`, `nether`, or `end`."
          },
          "worldRoot": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets an optional archive-relative world root when a ZIP contains multiple worlds."
          },
          "archiveWarpName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets an optional operator-confirmed Archive command name. Normally the server derives this\r\nfrom a recognized downloader report or an Archive-attributed filename."
          },
          "archiveWarpX": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the live Archive landing X coordinate captured immediately after the warp.",
            "format": "double"
          },
          "archiveWarpY": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the live Archive landing Y coordinate captured immediately after the warp.",
            "format": "double"
          },
          "archiveWarpZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the live Archive landing Z coordinate captured immediately after the warp.",
            "format": "double"
          }
        },
        "description": "Describes a validated world-download archive to queue for local ingestion."
      },
      "IngestionJobUpdate": {
        "type": "object",
        "properties": {
          "claimToken": {
            "type": "string",
            "description": "Gets or sets the 43-character claim secret proving ownership of the active lease."
          },
          "status": {
            "type": "string",
            "description": "Gets or sets the worker-reported state: `running`, `completed`, or `failed`."
          },
          "stage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the current pipeline stage, limited to 40 characters without control characters."
          },
          "message": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets an operator-safe status message, limited to 1,000 characters without control characters."
          },
          "progressPercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets overall progress from 0 through 100.",
            "format": "int32"
          },
          "etaSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets estimated remaining seconds from zero through seven days.",
            "format": "int32"
          },
          "archiveSha256": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the lowercase SHA-256 archive digest; completion reports require it."
          },
          "locationRender": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gets or sets the published render metadata; completion reports require it.",
                "$ref": "#/components/schemas/LocationRenderCompletion"
              }
            ]
          },
          "inspection": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gets or sets a replacement bounded world-inspection summary to persist with the job.",
                "$ref": "#/components/schemas/IngestionWorldInspection"
              }
            ]
          }
        },
        "description": "Reports authenticated progress or completion data from the worker holding a job lease."
      },
      "IngestionWorldInspection": {
        "type": "object",
        "properties": {
          "levelName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the optional world name read from `level.dat`."
          },
          "dataVersion": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the optional numeric Minecraft data version read from `level.dat`.",
            "format": "int32"
          },
          "versionName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the optional human-readable Minecraft version name."
          },
          "lastPlayedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets a plausible UTC LastPlayed time read from `level.dat`.",
            "format": "date-time"
          },
          "storageEra": {
            "type": "string",
            "description": "Gets or sets the aggregate storage era: `anvil`, `mcregion`, `legacy-alpha`, or `mixed`."
          },
          "dimensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IngestionDimensionInspection"
            },
            "description": "Gets or sets one to three unique Overworld, Nether, or End inspection summaries."
          },
          "provenanceStatus": {
            "type": "string",
            "description": "Gets or sets the provenance assessment: `unverified`, `source-attributed`, or `overlap-verified`."
          },
          "provenanceMessage": {
            "type": "string",
            "description": "Gets or sets the human-readable evidence statement supporting string IngestionWorldInspection.ProvenanceStatus."
          },
          "archiveEvidence": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gets or sets bounded Archive downloader, raw-dimension, and player-position evidence.",
                "$ref": "#/components/schemas/ArchiveWdlEvidence"
              }
            ]
          }
        },
        "description": "Summarizes trusted structural metadata extracted from a prepared Minecraft Java world."
      },
      "LegacyLocation": {
        "type": "object",
        "properties": {
          "location_uuid": {
            "type": "string",
            "description": "Gets the stable Atlas location UUID used by legacy clients and warp associations."
          },
          "user_uuid": {
            "type": "string",
            "description": "Gets the historical submitter UUID field, which this read-only adapter leaves empty."
          },
          "name": {
            "type": "string",
            "description": "Gets the public Atlas location name."
          },
          "x": {
            "type": "string",
            "description": "Gets the native-dimension block X coordinate encoded as legacy JSON text."
          },
          "y": {
            "type": "string",
            "description": "Gets the Minecraft elevation encoded as legacy JSON text."
          },
          "z": {
            "type": "string",
            "description": "Gets the native-dimension block Z coordinate encoded as legacy JSON text."
          },
          "description": {
            "type": "string",
            "description": "Gets the public historical description, normalized to an empty string when absent."
          },
          "tags": {
            "type": "string",
            "description": "Gets the legacy free-form tag text used for location discovery."
          },
          "time_added": {
            "type": "string",
            "description": "Gets the persisted location creation timestamp in its historical text representation."
          },
          "wiki": {
            "type": "string",
            "description": "Gets the optional public 2b2t wiki reference, normalized to an empty string."
          },
          "video_url": {
            "type": "string",
            "description": "Gets the optional public video reference, normalized to an empty string."
          },
          "end_dimension": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets 1 for End locations and 0 for all other dimensions, matching the legacy contract.",
            "format": "int32"
          },
          "warps": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/LegacyWarp"
            },
            "description": "Gets associated public warp names, or `null` when none exist."
          }
        },
        "description": "Wire-compatible location payload for consumers of the retired PHP implementation."
      },
      "LegacyWarp": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The historical public warp command name."
          }
        },
        "description": "Represents a warp name in the minimal legacy nested payload."
      },
      "LocalIntakeQueueRequest": {
        "type": "object",
        "properties": {
          "metadata": {
            "description": "Gets or sets the normal bounded ingestion metadata.",
            "$ref": "#/components/schemas/IngestionJobRequest"
          },
          "originalFileName": {
            "type": "string",
            "description": "Gets or sets the acquisition-side filename retained for Archive warp and provenance inference."
          }
        },
        "description": "Queues a completed ZIP already present in the server's configured local intake directory."
      },
      "Location": {
        "required": [
          "name",
          "dimension",
          "x",
          "z"
        ],
        "type": "object",
        "properties": {
          "rowid": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the unique identifier for the location.",
            "format": "int32"
          },
          "canonicalUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the canonical crawlable entity URL for this location."
          },
          "interactiveUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the interactive Atlas detail-page URL for this location."
          },
          "apiUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the public API URL for this location record."
          },
          "locationUuid": {
            "maxLength": 36,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the UUID from the original database."
          },
          "name": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name of the location."
          },
          "description": {
            "maxLength": 2000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the description of the location."
          },
          "tags": {
            "maxLength": 1000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the tags for the location."
          },
          "dimension": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the dimension of the location (0=Overworld, 1=Nether, 2=End).",
            "format": "int32"
          },
          "dimensionName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets the name of the dimension."
          },
          "x": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the X coordinate of the location.",
            "format": "int32"
          },
          "y": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the Y coordinate of the location.",
            "format": "int32"
          },
          "z": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the Z coordinate of the location.",
            "format": "int32"
          },
          "wiki": {
            "maxLength": 250,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the wiki URL for the location."
          },
          "videoUrl": {
            "maxLength": 255,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the video URL for the location."
          },
          "endDimension": {
            "type": "boolean",
            "description": "Gets or sets whether this is an End dimension location."
          },
          "dateAddedUtc": {
            "type": "string",
            "description": "Gets or sets the date and time when the location was added (UTC).",
            "format": "date-time"
          },
          "modifiedUtc": {
            "type": "string",
            "description": "Gets or sets when this public location record last changed in a way that affects its entity page.",
            "format": "date-time"
          },
          "warps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Warp"
            },
            "description": "Gets or sets the list of warps associated with the location."
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attachment"
            },
            "description": "Gets or sets the list of attachments associated with the location."
          },
          "renders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Render"
            },
            "description": "Gets or sets the list of renders associated with the location."
          },
          "groups": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/LocationGroupAttribution"
            },
            "description": "Gets or sets explicit group attributions for this build. A null value on an update means\r\nthat an older client did not send attribution data and existing links should be preserved."
          },
          "groupNames": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets the reviewed group names as a single searchable value for directory clients."
          },
          "warpCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets the number of warps associated with this location.\r\nThis property is sortable and filterable in data grids.",
            "format": "int32"
          },
          "attachmentCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets the number of attachments associated with this location.\r\nThis property is sortable and filterable in data grids.",
            "format": "int32"
          },
          "renderCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets the number of renders associated with this location.\r\nThis property is sortable and filterable in data grids.",
            "format": "int32"
          },
          "totalRelatedItems": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets the total number of related items (warps + attachments + renders).\r\nThis property is sortable and filterable in data grids.",
            "format": "int32"
          },
          "relatedContentSummary": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets a summary string of all related content counts.\r\nUseful for display purposes."
          }
        },
        "description": "Represents a location in the game world."
      },
      "LocationGroupAttribution": {
        "type": "object",
        "properties": {
          "groupId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the attributed group's identifier.",
            "format": "int32"
          },
          "groupUrl": {
            "type": "string",
            "description": "Gets or sets the group's canonical crawlable entity URL."
          },
          "groupInteractiveUrl": {
            "type": "string",
            "description": "Gets or sets the group's interactive Atlas URL."
          },
          "groupApiUrl": {
            "type": "string",
            "description": "Gets or sets the group's public API URL."
          },
          "groupName": {
            "type": "string",
            "description": "Gets or sets the attributed group's public name."
          },
          "role": {
            "type": "string",
            "description": "Gets or sets the group's role at the location."
          },
          "color": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the group's display color."
          },
          "logoUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the group's optional logo URL."
          }
        },
        "description": "Public group attribution embedded in a location record."
      },
      "LocationMatchSuggestion": {
        "required": [
          "locationId",
          "name",
          "distance",
          "confidence",
          "reason"
        ],
        "type": "object",
        "properties": {
          "locationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "The suggested location row identifier.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "The suggested location display name."
          },
          "distance": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Block distance from the render centroid to the location.",
            "format": "int32"
          },
          "confidence": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "description": "Combined 0..1 confidence from proximity and name similarity.",
            "format": "double"
          },
          "reason": {
            "type": "string",
            "description": "Human-readable explanation of why the location was suggested."
          }
        },
        "description": "One ranked existing-location suggestion for a render awaiting a manual match."
      },
      "LocationRenderCompletion": {
        "type": "object",
        "properties": {
          "tilesPath": {
            "type": "string",
            "description": "Gets or sets the approved HTTPS XYZ tile template ending in `{z}/{y}/{x}.png`."
          },
          "hasDayNight": {
            "type": "boolean",
            "description": "Gets or sets whether string LocationRenderCompletion.TilesPath contains a `{dn}` day/night token."
          },
          "dimension": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the map dimension number: 0 Overworld, 1 Nether, or 2 End.",
            "format": "int32"
          },
          "minX": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the inclusive minimum rendered block X coordinate.",
            "format": "int32"
          },
          "minZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the inclusive minimum rendered block Z coordinate.",
            "format": "int32"
          },
          "maxXExclusive": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the exclusive maximum rendered block X coordinate.",
            "format": "int32"
          },
          "maxZExclusive": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the exclusive maximum rendered block Z coordinate.",
            "format": "int32"
          },
          "maxNativeZoom": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the deepest zoom level backed by native tile files, from 0 through 30.",
            "format": "int32"
          },
          "coordinateScheme": {
            "type": "string",
            "description": "Gets or sets the signed tile-coordinate contract; registration currently requires `atlas-sparse-v1`."
          }
        },
        "description": "Describes a verified immutable tile pyramid that the server can register as a location render."
      },
      "LocationRenderDto": {
        "type": "object",
        "properties": {
          "renderId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the render's unique identifier.",
            "format": "int32"
          },
          "apiUrl": {
            "type": "string",
            "description": "Gets or sets the public API URL for this render record."
          },
          "locationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the owning location's row id.",
            "format": "int32"
          },
          "locationUrl": {
            "type": "string",
            "description": "Gets or sets the owning location's canonical entity URL."
          },
          "locationApiUrl": {
            "type": "string",
            "description": "Gets or sets the owning location's public API URL."
          },
          "locationName": {
            "type": "string",
            "description": "Gets or sets the owning location's name."
          },
          "locationX": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the owning location's block X coordinate (in the location's own dimension).",
            "format": "int32"
          },
          "locationZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the owning location's block Z coordinate (in the location's own dimension).",
            "format": "int32"
          },
          "dimension": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the render's dimension (0 Overworld, 1 Nether, 2 End).",
            "format": "int32"
          },
          "dimensionName": {
            "type": "string",
            "description": "Gets or sets the human-readable dimension name."
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the render's display name."
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the optional render description."
          },
          "source": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the stable acquisition channel code for this render."
          },
          "archiveWarpId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the exact Archive warp row represented by this render, when applicable.",
            "format": "int32"
          },
          "archiveWarpApiUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the public API URL for the represented Archive warp, when applicable."
          },
          "archiveWarpName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the exact copyable Archive warp name represented by this render."
          },
          "scale": {
            "type": "string",
            "description": "Gets or sets the render scale label (e.g. \"256k\")."
          },
          "tileUrlTemplate": {
            "type": "string",
            "description": "Gets or sets the XYZ tile URL template (with `{z}/{y}/{x}` placeholders)."
          },
          "hasDayNight": {
            "type": "boolean",
            "description": "Gets or sets whether the tile template contains a `{dn}` day/night token."
          },
          "maxNativeZoom": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the deepest zoom level backed by native tile files (deeper zooms upscale).",
            "format": "int32"
          },
          "coordinateScheme": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the coordinate and tile-layout contract used by string LocationRenderDto.TileUrlTemplate."
          },
          "worldDownloadDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the world-download date the render was produced from, when known."
          },
          "worldDownloadUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets a public ZIP URL for the preserved source WDL when available."
          },
          "worldDownloadMetadataUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the source WDL metadata URL when available."
          },
          "worldDownloadScope": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the source WDL scope when available."
          },
          "worldDownloadSha256": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the source WDL SHA-256 digest when available."
          },
          "worldDownloadSource": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the source WDL provenance when available."
          },
          "minX": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the inclusive minimum rendered block X coordinate.",
            "format": "int32"
          },
          "minZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the inclusive minimum rendered block Z coordinate.",
            "format": "int32"
          },
          "maxXExclusive": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the exclusive maximum rendered block X coordinate.",
            "format": "int32"
          },
          "maxZExclusive": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the exclusive maximum rendered block Z coordinate.",
            "format": "int32"
          },
          "dateAddedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the UTC time the render was added, in round-trip text form."
          }
        },
        "description": "A per-location base render (a tile pyramid anchored at one base's coordinates) together with the owning\r\nlocation's identity and position. This is the external-facing shape for the `/api/renders` resource:\r\nit carries everything a map or tooling client needs to place and fetch a render's tiles — the tile URL\r\ntemplate, coordinate scheme, native zoom depth, block bounds, and the location it belongs to — without a\r\nsecond lookup. These are distinct from the dimension-level primary layers served by `/api/maprenders`."
      },
      "LoginRequest": {
        "required": [
          "username",
          "password"
        ],
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "Gets or sets the required account username."
          },
          "password": {
            "type": "string",
            "description": "Gets or sets the required plaintext credential submitted for verification."
          }
        },
        "description": "Login request model."
      },
      "MapRenderDto": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the render's persistent identifier.",
            "format": "int32"
          },
          "slug": {
            "type": "string",
            "description": "Stable key for idempotent upsert by the ingestor (e.g. \"overworld-1m-2026\")."
          },
          "name": {
            "type": "string",
            "description": "Label shown in the render picker."
          },
          "dimension": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "0 = Overworld, 1 = Nether, 2 = End (matches the DB + client DIM_INDEX).",
            "format": "int32"
          },
          "scale": {
            "type": "string",
            "description": "Human scale tag (e.g. \"1M\", \"256k\")."
          },
          "urlTemplate": {
            "type": "string",
            "description": "Tile URL template containing `{z}/{y}/{x}`, and optionally a `{dn}`\r\ntoken replaced with `day`/`night` when bool MapRenderDto.HasDayNight is set."
          },
          "hasDayNight": {
            "type": "boolean",
            "description": "True if the render has separate day/night tile sets (uses `{dn}`)."
          },
          "maxNativeZoom": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Deepest native zoom if the pyramid is shallower than the map max (else null).",
            "format": "int32"
          },
          "worldDownloadDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "ISO date of the underlying world download (drives the time slider)."
          },
          "source": {
            "type": [
              "null",
              "string"
            ],
            "description": "Attribution / provenance (e.g. \"2b2t.place 1M²\")."
          },
          "sortOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Ordering within a dimension's picker (lower = earlier).",
            "format": "int32"
          },
          "isPublished": {
            "type": "boolean",
            "description": "Only published renders are returned on the public endpoint."
          },
          "dateAddedUtc": {
            "type": "string",
            "description": "Gets or sets the UTC time at which the render was registered.",
            "format": "date-time"
          }
        },
        "description": "A dimension-level world render (a full tile pyramid), as opposed to a\r\nper-location base render. These are what the map's render picker stacks\r\n(e.g. \"256k (2021)\", \"1M² (2026)\"). The ingest pipeline auto-registers these\r\nso new world downloads appear as map layers without any manual admin step\r\n(GAMEPLAN §6b / Phase 1)."
      },
      "MatchPreviewCandidate": {
        "required": [
          "dimension",
          "centerX",
          "centerZ"
        ],
        "type": "object",
        "properties": {
          "dimension": {
            "type": "string",
            "description": "The dimension key: `overworld`, `nether`, or `end`."
          },
          "centerX": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "The approximate block X centroid of the dimension's region data.",
            "format": "int32"
          },
          "centerZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "The approximate block Z centroid of the dimension's region data.",
            "format": "int32"
          }
        },
        "description": "One dimension's render centroid computed client-side from a WDL's region file names."
      },
      "MatchPreviewRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the render name used for name-similarity scoring."
          },
          "candidates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MatchPreviewCandidate"
            },
            "description": "Gets or sets the per-dimension centroids to score against existing locations."
          }
        },
        "description": "A drop-time request to preview which existing locations a WDL's dimensions would match."
      },
      "MatchPreviewResult": {
        "required": [
          "dimension",
          "centerX",
          "centerZ",
          "autoAttachLocationId",
          "autoAttachName",
          "suggestions"
        ],
        "type": "object",
        "properties": {
          "dimension": {
            "type": "string",
            "description": "The dimension key the preview was computed for."
          },
          "centerX": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "The block X centroid used for matching.",
            "format": "int32"
          },
          "centerZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "The block Z centroid used for matching.",
            "format": "int32"
          },
          "autoAttachLocationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "The confidently matched location id, or `null`.",
            "format": "int32"
          },
          "autoAttachName": {
            "type": [
              "null",
              "string"
            ],
            "description": "The confidently matched location name, or `null`."
          },
          "suggestions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocationMatchSuggestion"
            },
            "description": "Ranked suggestions offered when there is no confident match."
          }
        },
        "description": "The previewed match outcome for one dimension, without creating any job."
      },
      "NightColorGradeOptions": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Gets or sets whether colour-preserving night grading is enabled."
          },
          "saturation": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "description": "Gets or sets the multiplier applied to daytime chroma, from 0 (gray) to 2.",
            "format": "double"
          },
          "lightness": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "description": "Gets or sets the multiplier applied to uNmINeD night luminance.",
            "format": "double"
          }
        },
        "description": "Atlas post-processing applied after uNmINeD's native night renderer. uNmINeD supplies the\r\nauthoritative block-light luminance; the paired day tile supplies terrain colour that native\r\nnight mode otherwise desaturates almost completely."
      },
      "PavingMaterial": {
        "type": "integer",
        "description": "Paving material — durability + prestige on 2b2t."
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "null",
              "string"
            ]
          },
          "title": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "detail": {
            "type": [
              "null",
              "string"
            ]
          },
          "instance": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "RegisterRequest": {
        "required": [
          "username",
          "password",
          "confirmPassword"
        ],
        "type": "object",
        "properties": {
          "username": {
            "maxLength": 50,
            "minLength": 3,
            "type": "string",
            "description": "Gets or sets the required unique username, from 3 through 50 characters."
          },
          "discordHandle": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the optional Discord handle used as an alternate login identity."
          },
          "password": {
            "maxLength": 100,
            "minLength": 6,
            "type": "string",
            "description": "Gets or sets the required plaintext password, from 6 through 100 characters."
          },
          "confirmPassword": {
            "type": "string",
            "description": "Gets or sets the required confirmation value, which must equal string RegisterRequest.Password."
          },
          "firstName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the user's optional first name."
          },
          "lastName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the user's optional last name."
          }
        },
        "description": "Registration request model."
      },
      "RejectRequest": {
        "type": "object",
        "properties": {
          "reason": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the review note persisted with the rejected revision."
          }
        },
        "description": "Supplies an optional moderator-facing explanation when a proposal is rejected."
      },
      "Render": {
        "required": [
          "locationRowid",
          "name",
          "dimension",
          "scale",
          "tilesPath",
          "dateAddedUtc"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the unique identifier for the render.",
            "format": "int32"
          },
          "apiUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the public API URL for this render record."
          },
          "locationRowid": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the ID of the associated location.",
            "format": "int32"
          },
          "name": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name of the render."
          },
          "description": {
            "maxLength": 1000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the description of the render."
          },
          "source": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the stable acquisition channel code (for example, archive-collector)."
          },
          "archiveWarpId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the exact Archive warp whose WDL produced this render.",
            "format": "int32"
          },
          "archiveWarp": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gets or sets the exact Archive warp whose WDL produced this render.",
                "$ref": "#/components/schemas/Warp"
              }
            ]
          },
          "dimension": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the dimension of the render.",
            "format": "int32"
          },
          "scale": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the scale of the render."
          },
          "tilesPath": {
            "maxLength": 500,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the path to the render tiles."
          },
          "hasDayNight": {
            "type": "boolean",
            "description": "Gets or sets whether the tile template contains separate day and night pyramids."
          },
          "previewImagePath": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the path to the preview image."
          },
          "worldDownloadDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the world download date."
          },
          "worldDownloadUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets a public download URL for the preserved source WDL when this render is not Archive-warp-backed."
          },
          "worldDownloadMetadataUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the public metadata URL for the preserved source WDL."
          },
          "worldDownloadScope": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the source-world scope, such as `preserved-render-source`."
          },
          "worldDownloadSha256": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the immutable SHA-256 digest of the preserved source WDL."
          },
          "worldDownloadSource": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the human-readable provenance recorded when the source WDL was ingested."
          },
          "minX": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the inclusive minimum rendered block X coordinate.",
            "format": "int32"
          },
          "minZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the inclusive minimum rendered block Z coordinate.",
            "format": "int32"
          },
          "maxXExclusive": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the exclusive maximum rendered block X coordinate.",
            "format": "int32"
          },
          "maxZExclusive": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the exclusive maximum rendered block Z coordinate.",
            "format": "int32"
          },
          "maxNativeZoom": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the deepest zoom level backed by native tile files.",
            "format": "int32"
          },
          "coordinateScheme": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the coordinate and tile-layout contract used by string Render.TilesPath."
          },
          "dateAddedUtc": {
            "type": "string",
            "description": "Gets or sets the date and time when the render was added (UTC)."
          },
          "archiveWarps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Warp"
            },
            "description": "Gets or sets the list of archive warps associated with this render."
          }
        },
        "description": "Represents a render associated with a location."
      },
      "RenderCatalogEntry": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "description": "`primary` for a full-map layer, `location` for a per-location capture."
          },
          "id": {
            "type": "string",
            "description": "Stable identifier: the layer slug for primary, `render-{id}` for location."
          },
          "name": {
            "type": "string",
            "description": "Display name (e.g. \"256k (2021)\" or \"+Z Border 2019-04-20\")."
          },
          "dimension": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "0 = Overworld, 1 = Nether, 2 = End.",
            "format": "int32"
          },
          "scale": {
            "type": [
              "null",
              "string"
            ],
            "description": "Human scale tag (e.g. \"256k\", \"7k\"), when known."
          },
          "tileUrlTemplate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Tile URL template with `{z}/{y}/{x}`, and `{dn}` (→ `day`/`night`)\r\nwhen bool RenderCatalogEntry.HasDayNight is set. Null for proxied layers (see string? RenderCatalogEntry.CoordinateScheme)."
          },
          "hasDayNight": {
            "type": "boolean",
            "description": "True when the render has separate day/night tile sets (uses `{dn}`)."
          },
          "maxNativeZoom": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Deepest native zoom before the client upscales, when the pyramid is shallow.",
            "format": "int32"
          },
          "coordinateScheme": {
            "type": [
              "null",
              "string"
            ],
            "description": "Tile contract: `atlas-sparse-v1`, `xyz-v1`, or `place-proxy`."
          },
          "source": {
            "type": [
              "null",
              "string"
            ],
            "description": "Attribution / provenance (e.g. \"2b2t.place\")."
          },
          "worldDownloadDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "ISO date of the underlying world download, when known."
          },
          "locationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Owning location row id (location renders only).",
            "format": "int32"
          },
          "locationName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Owning location name (location renders only)."
          },
          "locationX": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Owning location block X (location renders only).",
            "format": "int32"
          },
          "locationZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Owning location block Z (location renders only).",
            "format": "int32"
          },
          "minX": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Inclusive minimum rendered block X (location renders only).",
            "format": "int32"
          },
          "minZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Inclusive minimum rendered block Z (location renders only).",
            "format": "int32"
          },
          "maxXExclusive": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Exclusive maximum rendered block X (location renders only).",
            "format": "int32"
          },
          "maxZExclusive": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Exclusive maximum rendered block Z (location renders only).",
            "format": "int32"
          }
        },
        "description": "One render in the external catalog. Location-only fields are null for primary layers."
      },
      "RenderCatalogResponse": {
        "type": "object",
        "properties": {
          "primary": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RenderCatalogEntry"
            },
            "description": "Dimension-level full-map renders (the base layers of the map picker)."
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RenderCatalogEntry"
            },
            "description": "Per-location base renders (one or more captures anchored to a location)."
          }
        },
        "description": "A combined, external-facing catalog of every render the atlas exposes: the\r\ndimension-level <b>primary</b> layers (full tile pyramids the map picker stacks)\r\nand the per-location <b>base</b> renders (captures anchored to a single location).\r\nServed read-only from `GET /api/maprenders/catalog` for third-party consumers."
      },
      "RenderPreviewResult": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean",
            "description": "Gets or sets whether the preview render succeeded."
          },
          "error": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets an explanation when the preview failed or is unavailable."
          },
          "imageBase64": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the rendered PNG as a base64 string, when successful."
          },
          "nightImageBase64": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the night preview PNG as a base64 string."
          },
          "widthPx": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the rendered image width in pixels.",
            "format": "int32"
          },
          "heightPx": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the rendered image height in pixels.",
            "format": "int32"
          },
          "elapsedMs": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the render time in milliseconds.",
            "format": "int64"
          },
          "minX": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the inclusive preview minimum block X coordinate.",
            "format": "int32"
          },
          "minZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the inclusive preview minimum block Z coordinate.",
            "format": "int32"
          },
          "maxXExclusive": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the exclusive preview maximum block X coordinate.",
            "format": "int32"
          },
          "maxZExclusive": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the exclusive preview maximum block Z coordinate.",
            "format": "int32"
          }
        },
        "description": "The result of a bounded sample preview render used to check settings before publishing."
      },
      "RenderSettingsDto": {
        "type": "object",
        "properties": {
          "nightColorGrade": {
            "description": "Gets or sets Atlas colour-preserving post-processing for uNmINeD night output.",
            "$ref": "#/components/schemas/NightColorGradeOptions"
          },
          "dimensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DimensionRenderOptions"
            },
            "description": "Gets or sets the per-dimension structured render options."
          },
          "colorsText": {
            "type": "string",
            "description": "Gets or sets the raw contents of unMINED's `custom.colors.txt` (block/map colour overrides)."
          },
          "biomeTintsText": {
            "type": "string",
            "description": "Gets or sets the raw contents of unMINED's `custom.biometints.txt` (per-biome grass/foliage/water)."
          },
          "blockStylesText": {
            "type": "string",
            "description": "Gets or sets the raw contents of unMINED's `custom.blockstyles.txt` (per-block styling)."
          },
          "rendererVersion": {
            "type": "string",
            "description": "Gets or sets the pinned unMINED version string (read-only)."
          },
          "executablePath": {
            "type": "string",
            "description": "Gets or sets the unMINED executable path (read-only)."
          },
          "sampleWorlds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the names of the staged sample worlds available for preview rendering."
          }
        },
        "description": "The editable unMINED render-pipeline settings surfaced by the admin \"Render Settings\" tab. Combines the\r\nstructured per-dimension render flags (rebuilt into `renderer.json`) with the raw unMINED colour,\r\nbiome-tint, and block-style config files that an experienced operator edits directly. The unMINED\r\nexecutable path and its SHA-256 pin are exposed read-only and never written, so the fail-closed render\r\ngate cannot be altered from the UI."
      },
      "ResolveMatchRequest": {
        "type": "object",
        "properties": {
          "locationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the existing location to attach, or `null` to create a new location at the render centroid.",
            "format": "int32"
          },
          "warpName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the reviewed Archive warp, or an empty value when this is not an Archive WDL."
          }
        },
        "description": "Resolves a job awaiting a manual location match."
      },
      "ReviewStatus": {
        "type": "integer",
        "description": "Moderation state of a highway record (see GAMEPLAN §15)."
      },
      "RevisionDto": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the revision's persistent identifier.",
            "format": "int32"
          },
          "entityType": {
            "type": "string",
            "description": "Target entity type: \"Location\" or \"Highway\"."
          },
          "entityId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Target entity id.",
            "format": "int32"
          },
          "proposedJson": {
            "type": "string",
            "description": "Proposed full entity payload (JSON of the Atlas DTO)."
          },
          "note": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional contributor note explaining the change."
          },
          "source": {
            "type": [
              "null",
              "string"
            ],
            "description": "Origin of the proposal: \"User\" for human submissions or \"AI\" for enrichment-generated ones."
          },
          "confidence": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "For AI proposals, the match confidence (0..1) that produced this change; null for human edits.",
            "format": "double"
          },
          "previousJson": {
            "type": [
              "null",
              "string"
            ],
            "description": "The target entity payload (JSON) captured before an auto-applied change, enabling revert."
          },
          "status": {
            "description": "Gets or sets the revision's moderation state.",
            "$ref": "#/components/schemas/RevisionStatus"
          },
          "submittedByUserId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the identifier of the contributor who submitted the revision.",
            "format": "int32"
          },
          "submittedByUsername": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the contributor name captured for moderation display and audit history."
          },
          "reviewedByUserId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the identifier of the moderator who reviewed the revision.",
            "format": "int32"
          },
          "reviewNote": {
            "type": [
              "null",
              "string"
            ],
            "description": "Moderator reason when rejected."
          },
          "submittedUtc": {
            "type": "string",
            "description": "Gets or sets the UTC time at which the revision was submitted.",
            "format": "date-time"
          },
          "reviewedUtc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the UTC time at which the revision was approved or rejected.",
            "format": "date-time"
          }
        },
        "description": "A proposed edit to an existing Location or Highway, submitted by a contributor\r\nwho lacks direct edit rights. Moderators approve (apply + audit) or reject."
      },
      "RevisionStatus": {
        "type": "integer",
        "description": "Review state of a proposed edit to an existing entity (GAMEPLAN §15)."
      },
      "RoleMatrix": {
        "type": "object",
        "properties": {
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Editable roles (SuperAdmin is excluded — it always has everything)."
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "All permission keys in the system."
          },
          "grants": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "role → the permission keys it currently grants."
          },
          "customized": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Roles whose grants come from DB overrides (vs the code default)."
          }
        },
        "description": "Role → permission matrix for the admin editor (GAMEPLAN §15). Grants reflect the\r\neffective permissions (DB overrides when present, else the code-defined default)."
      },
      "UpdateUserRequest": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "Gets or sets the account's updated sign-in name."
          },
          "discordHandle": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the account's optional Discord handle."
          },
          "role": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the canonical role identifier to assign."
          },
          "isAdmin": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Gets or sets the legacy administrator flag when it should be changed."
          },
          "isActive": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Gets or sets whether the account may authenticate when its state should be changed."
          },
          "newPassword": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets a replacement plaintext credential to hash, or `null` to retain the current credential."
          }
        },
        "description": "Update user request model."
      },
      "User": {
        "required": [
          "username",
          "passwordHash",
          "role"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the unique identifier for the user.",
            "format": "int32"
          },
          "username": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the username."
          },
          "discordHandle": {
            "maxLength": 255,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the optional Discord handle used as an alternate login identity."
          },
          "passwordHash": {
            "type": "string",
            "description": "Gets or sets the password hash."
          },
          "firstName": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the first name."
          },
          "lastName": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the last name."
          },
          "role": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the user role."
          },
          "isActive": {
            "type": "boolean",
            "description": "Gets or sets whether the user is active."
          },
          "isAdmin": {
            "type": "boolean",
            "description": "Gets or sets whether the user is an admin."
          },
          "isSuperAdmin": {
            "type": "boolean",
            "description": "Gets or sets whether the user is the master SuperAdmin (full control,\r\nbypasses all permission checks; cannot be demoted/deleted by lower roles)."
          },
          "minecraftUsername": {
            "maxLength": 50,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the user's in-game Minecraft username (optional)."
          },
          "discordId": {
            "maxLength": 100,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the user's Discord id/handle (optional)."
          },
          "bio": {
            "maxLength": 500,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets a short public bio (optional)."
          },
          "trustLevel": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the contributor trust level (0 = new). Higher trust can\r\nunlock auto-approval of submissions.",
            "format": "int32"
          },
          "autoApprove": {
            "type": "boolean",
            "description": "Gets or sets whether this user's submissions skip the moderation queue."
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the effective permissions resolved from the user's role\r\n(populated by the server; used by the client for conditional UI)."
          },
          "createdAt": {
            "type": "string",
            "description": "Gets or sets the date and time when the user was created.",
            "format": "date-time"
          },
          "lastLoginAt": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the date and time of the last login.",
            "format": "date-time"
          }
        },
        "description": "Represents a user in the system."
      },
      "Warp": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the unique identifier for the warp.",
            "format": "int32"
          },
          "apiUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the public API URL for this Archive warp record."
          },
          "warpUuid": {
            "maxLength": 36,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the UUID from the original database."
          },
          "locationUuidFk": {
            "maxLength": 36,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the location UUID foreign key."
          },
          "locationRowid": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the foreign key to the location.",
            "format": "int32"
          },
          "name": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the warp name."
          },
          "timeAdded": {
            "type": "string",
            "description": "Gets or sets the date and time when the warp was added.",
            "format": "date-time"
          },
          "archiveSha256": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the immutable WDL digest associated with this Archive warp."
          },
          "worldDownloadUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the public URL of the immutable, bounded Minecraft world ZIP."
          },
          "worldDownloadMetadataUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the public JSON metadata URL for the bounded world download."
          },
          "worldDownloadScope": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the capture scope, currently `bounded-footprint` for collector WDLs."
          },
          "worldDownloadDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the declared date of this warp's world download."
          },
          "source": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the human-readable provenance attribution for this warp."
          },
          "archiveX": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the live Archive landing X coordinate for this WDL warp.",
            "format": "double"
          },
          "archiveY": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the live Archive landing Y coordinate for this WDL warp.",
            "format": "double"
          },
          "archiveZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the live Archive landing Z coordinate for this WDL warp.",
            "format": "double"
          }
        },
        "description": "Represents a named legacy warp associated with an Atlas location."
      },
      "WarpRecord": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "locationName": {
            "type": "string",
            "description": "Gets or sets the owning location's display name."
          },
          "dimension": {
            "description": "Gets or sets the owning location's Minecraft dimension.",
            "$ref": "#/components/schemas/Dimension"
          },
          "locationUrl": {
            "type": "string",
            "description": "Gets or sets the owning location's canonical entity URL."
          },
          "locationApiUrl": {
            "type": "string",
            "description": "Gets or sets the owning location's public API URL."
          },
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the unique identifier for the warp.",
            "format": "int32"
          },
          "apiUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the public API URL for this Archive warp record."
          },
          "warpUuid": {
            "maxLength": 36,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the UUID from the original database."
          },
          "locationUuidFk": {
            "maxLength": 36,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the location UUID foreign key."
          },
          "locationRowid": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the foreign key to the location.",
            "format": "int32"
          },
          "name": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the warp name."
          },
          "timeAdded": {
            "type": "string",
            "description": "Gets or sets the date and time when the warp was added.",
            "format": "date-time"
          },
          "archiveSha256": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the immutable WDL digest associated with this Archive warp."
          },
          "worldDownloadUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the public URL of the immutable, bounded Minecraft world ZIP."
          },
          "worldDownloadMetadataUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the public JSON metadata URL for the bounded world download."
          },
          "worldDownloadScope": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the capture scope, currently `bounded-footprint` for collector WDLs."
          },
          "worldDownloadDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the declared date of this warp's world download."
          },
          "source": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the human-readable provenance attribution for this warp."
          },
          "archiveX": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the live Archive landing X coordinate for this WDL warp.",
            "format": "double"
          },
          "archiveY": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the live Archive landing Y coordinate for this WDL warp.",
            "format": "double"
          },
          "archiveZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "description": "Gets or sets the live Archive landing Z coordinate for this WDL warp.",
            "format": "double"
          }
        },
        "description": "A public Archive warp record with its owning Atlas location and navigable links."
      },
      "WikiEnrichmentSuggestion": {
        "type": "object",
        "properties": {
          "locationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the target location row id.",
            "format": "int32"
          },
          "locationName": {
            "type": "string",
            "description": "Gets or sets the target location name at generation time."
          },
          "wikiTitle": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the matched wiki page title, or null when no confident page was found."
          },
          "wikiUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the matched wiki page URL, or null when no page was found."
          },
          "confidence": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "description": "Gets or sets the overall match confidence from 0 (none) to 1 (name and coordinates agree).",
            "format": "double"
          },
          "coordinatesAgree": {
            "type": "boolean",
            "description": "Gets or sets whether the wiki page's coordinates matched the location within tolerance."
          },
          "coordinateDistanceBlocks": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the closest Overworld-scale distance between wiki and location coordinates, or -1.",
            "format": "int64"
          },
          "matchReason": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets a short, human-readable explanation of why this page was matched."
          },
          "suggestedDescription": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the drafted description, or null when generation was skipped or empty."
          },
          "attribution": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the source attribution line for the description (wiki URL + license)."
          },
          "autoApplyEligible": {
            "type": "boolean",
            "description": "Gets or sets whether this suggestion cleared the auto-apply confidence and coordinate gates."
          },
          "suggestedGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupAttributionSuggestion"
            },
            "description": "Gets or sets evidence-backed group/build relationships found in the revision-pinned group audit.\r\nIncidental wiki mentions are never included."
          },
          "generatedUtc": {
            "type": "string",
            "description": "Gets or sets the ISO-8601 UTC time the suggestion was generated."
          }
        },
        "description": "An AI-assisted wiki match and draft description for a single Atlas location. It is produced by the\r\nserver's local enrichment engine for an operator to review — either before it is saved (interactive\r\n\"Generate description\") or after it is auto-applied (the review queue). It carries the evidence\r\n(coordinate agreement, confidence, source attribution) needed to trust or revert the suggestion."
      },
      "WorldDownloadBounds": {
        "type": "object",
        "properties": {
          "minX": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the inclusive minimum block X coordinate.",
            "format": "int32"
          },
          "minZ": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the inclusive minimum block Z coordinate.",
            "format": "int32"
          },
          "maxXExclusive": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the exclusive maximum block X coordinate.",
            "format": "int32"
          },
          "maxZExclusive": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the exclusive maximum block Z coordinate.",
            "format": "int32"
          }
        },
        "description": "Half-open native-dimension block bounds retained with a bounded world download."
      },
      "WorldDownloadRecord": {
        "type": "object",
        "properties": {
          "warpId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the Archive warp identifier.",
            "format": "int32"
          },
          "warpName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the Archive warp name."
          },
          "renderId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the source render identifier for a preserved pre-Archive WDL.",
            "format": "int32"
          },
          "renderName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the source render name for a preserved pre-Archive WDL."
          },
          "locationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the owning Atlas location identifier.",
            "format": "int32"
          },
          "locationName": {
            "type": "string",
            "description": "Gets or sets the owning Atlas location name."
          },
          "locationUrl": {
            "type": "string",
            "description": "Gets or sets the canonical location entity URL."
          },
          "locationApiUrl": {
            "type": "string",
            "description": "Gets or sets the public location API URL."
          },
          "metadataUrl": {
            "type": "string",
            "description": "Gets or sets this record's public metadata URL."
          },
          "downloadUrl": {
            "type": "string",
            "description": "Gets or sets the immutable ZIP download URL."
          },
          "fileName": {
            "type": "string",
            "description": "Gets or sets the suggested download file name."
          },
          "contentType": {
            "type": "string",
            "description": "Gets or sets the ZIP media type."
          },
          "byteLength": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "description": "Gets or sets the ZIP size in bytes.",
            "format": "int64"
          },
          "sha256": {
            "type": "string",
            "description": "Gets or sets the lowercase SHA-256 digest of the ZIP."
          },
          "captureType": {
            "type": "string",
            "description": "Gets or sets the capture scope."
          },
          "worldFormat": {
            "type": "string",
            "description": "Gets or sets the saved-world format."
          },
          "playability": {
            "type": "string",
            "description": "Gets or sets the save's playability classification."
          },
          "isCompleteWorld": {
            "type": "boolean",
            "description": "Gets or sets whether the ZIP represents a complete world."
          },
          "warning": {
            "type": "string",
            "description": "Gets or sets the historical-fidelity warning."
          },
          "dimension": {
            "type": "string",
            "description": "Gets or sets the retained Minecraft dimension."
          },
          "chunkCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "description": "Gets or sets the number of retained chunks when known.",
            "format": "int32"
          },
          "bounds": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Gets or sets the half-open retained block bounds when known.",
                "$ref": "#/components/schemas/WorldDownloadBounds"
              }
            ]
          },
          "worldDownloadDate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the declared source-world date."
          },
          "source": {
            "type": [
              "null",
              "string"
            ],
            "description": "Gets or sets the capture provenance."
          },
          "attribution": {
            "type": "string",
            "description": "Gets or sets the human-readable preservation attribution."
          }
        },
        "description": "Public metadata for one immutable, partial Minecraft Java world download."
      }
    }
  },
  "tags": [
    {
      "name": "Admin"
    },
    {
      "name": "ApiIndex"
    },
    {
      "name": "ArchiveCollectorAdmin"
    },
    {
      "name": "Attachments"
    },
    {
      "name": "Audit"
    },
    {
      "name": "Auth"
    },
    {
      "name": "EnrichmentAdmin"
    },
    {
      "name": "Enrichment"
    },
    {
      "name": "Groups"
    },
    {
      "name": "Highways"
    },
    {
      "name": "IngestionJobs"
    },
    {
      "name": "LegacyApi"
    },
    {
      "name": "Locations"
    },
    {
      "name": "MapRenders"
    },
    {
      "name": "PlaceTiles"
    },
    {
      "name": "Renders"
    },
    {
      "name": "RenderSettings"
    },
    {
      "name": "Revisions"
    },
    {
      "name": "Roles"
    },
    {
      "name": "Warps"
    },
    {
      "name": "WorldDownloads"
    }
  ]
}