{
  "openapi": "3.1.0",
  "info": {
    "title": "Silver Palace Data API",
    "version": "1.0.0",
    "description": "Read-only JSON API for the Silver Palace fan resource hub: characters, guides, and blog posts for the upcoming detective ARPG gacha game. All endpoints are public, unauthenticated, and CORS-enabled.",
    "contact": {
      "name": "Silver Palace",
      "url": "https://www.silverpalacemeta.com",
      "email": "contact@silverpalacemeta.com"
    },
    "license": {
      "name": "Fan-made resource, not affiliated with Elementa Games",
      "url": "https://www.silverpalacemeta.com/terms"
    }
  },
  "servers": [
    {
      "url": "https://www.silverpalacemeta.com"
    }
  ],
  "paths": {
    "/api/characters.json": {
      "get": {
        "operationId": "getCharacters",
        "summary": "List all characters",
        "description": "Returns the full character roster with roles, reactor attributes, factions, weapons, and descriptions.",
        "responses": {
          "200": {
            "description": "Character roster",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "lastUpdated": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "lastVerified": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "characters": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "role": {
                            "type": "string"
                          },
                          "faction": {
                            "type": "string"
                          },
                          "reactorAttribute": {
                            "type": "string"
                          },
                          "weapon": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/guides.json": {
      "get": {
        "operationId": "getGuides",
        "summary": "List all guides",
        "description": "Returns the catalog of gameplay and systems guides, including a schema.org ItemList representation.",
        "responses": {
          "200": {
            "description": "Guide catalog",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "guides": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "path": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          },
                          "readTime": {
                            "type": "string"
                          },
                          "difficulty": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "total": {
                      "type": "integer"
                    },
                    "lastUpdated": {
                      "type": "string",
                      "format": "date-time"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/blog/{slug}": {
      "get": {
        "operationId": "getBlogPost",
        "summary": "Get a single blog post",
        "description": "Returns the full content of a blog post by its slug. Slugs are listed in the sitemap and at /llms.txt.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Blog post slug, e.g. silver-palace-dichotomy-beta-test",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Full blog post",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Post not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}