{
  "openapi": "3.1.0",
  "info": {
    "title": "danielfarina.com public API",
    "version": "1.0.0",
    "summary": "Read-only catalog of Daniel Farina — identity, work, and writing.",
    "description": "I build the layer around the model — sandbox, tools, evals, control plane — and publish what actually breaks. No authentication. GET/HEAD/OPTIONS only. Errors use RFC 9457 application/problem+json. Rate limit: 120 requests per client IP per 60 seconds.",
    "contact": {
      "name": "Daniel Farina",
      "url": "https://danielfarina.com/developers",
      "email": "elchileno@gmail.com"
    },
    "license": {
      "name": "MIT",
      "url": "https://opensource.org/licenses/MIT"
    }
  },
  "servers": [
    {
      "url": "https://danielfarina.com",
      "description": "Production (API v1)"
    }
  ],
  "tags": [
    {
      "name": "catalog",
      "description": "Public read-only resources"
    }
  ],
  "x-rate-limit-policy": {
    "name": "catalog",
    "quota": 120,
    "window_seconds": 60,
    "partition": "client IP address"
  },
  "x-api-lifecycle": {
    "current_major_version": "v1",
    "deprecation_policy_url": "https://danielfarina.com/developers/versioning"
  },
  "paths": {
    "/api/v1/site": {
      "get": {
        "tags": [
          "catalog"
        ],
        "summary": "Site identity",
        "description": "Return canonical identity, CLI install commands, and index URLs for danielfarina.com.",
        "operationId": "getSite",
        "responses": {
          "200": {
            "description": "Identity, CLI install, and index URLs",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "name",
                    "url",
                    "description",
                    "email",
                    "llms",
                    "sitemap",
                    "openapi",
                    "developers",
                    "cli"
                  ],
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Display name"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "description": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string",
                      "format": "email"
                    },
                    "llms": {
                      "type": "string",
                      "format": "uri"
                    },
                    "sitemap": {
                      "type": "string",
                      "format": "uri"
                    },
                    "openapi": {
                      "type": "string",
                      "format": "uri"
                    },
                    "developers": {
                      "type": "string",
                      "format": "uri"
                    },
                    "cli": {
                      "type": "object",
                      "required": [
                        "npx",
                        "brew"
                      ],
                      "properties": {
                        "npx": {
                          "type": "string"
                        },
                        "brew": {
                          "type": "string"
                        }
                      }
                    },
                    "sameAs": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uri"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "No resource at this path",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed — this API is GET/HEAD/OPTIONS only",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              },
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/work": {
      "get": {
        "tags": [
          "catalog"
        ],
        "summary": "Selected work",
        "description": "Pinned agent-harness projects: Sub8, Xplor, GrokTerm, grok-remote, grok-bench, ThinkVoice.",
        "operationId": "getWork",
        "responses": {
          "200": {
            "description": "Pinned harnesses and tools",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "id",
                      "name",
                      "url",
                      "page",
                      "blurb",
                      "why",
                      "tags"
                    ],
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "url": {
                        "type": "string",
                        "format": "uri"
                      },
                      "page": {
                        "type": "string",
                        "format": "uri"
                      },
                      "blurb": {
                        "type": "string"
                      },
                      "why": {
                        "type": "string"
                      },
                      "tags": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "github": {
                        "type": "string",
                        "format": "uri"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "No resource at this path",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed — this API is GET/HEAD/OPTIONS only",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              },
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/posts": {
      "get": {
        "tags": [
          "catalog"
        ],
        "summary": "Writing index",
        "description": "Essays and X build-log posts with canonical URLs.",
        "operationId": "getPosts",
        "responses": {
          "200": {
            "description": "Essays and X build-log posts",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "slug",
                      "title",
                      "dek",
                      "pubDate",
                      "kind",
                      "category",
                      "url"
                    ],
                    "properties": {
                      "slug": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      },
                      "dek": {
                        "type": "string"
                      },
                      "pubDate": {
                        "type": "string",
                        "format": "date"
                      },
                      "kind": {
                        "type": "string",
                        "enum": [
                          "essay",
                          "x"
                        ]
                      },
                      "category": {
                        "type": "string"
                      },
                      "url": {
                        "type": "string",
                        "format": "uri"
                      },
                      "xUrl": {
                        "type": "string",
                        "format": "uri"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "No resource at this path",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed — this API is GET/HEAD/OPTIONS only",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              },
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "headers": {
              "RateLimit-Policy": {
                "description": "Quota policy in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";q=120;w=60"
                  ]
                }
              },
              "RateLimit": {
                "description": "Remaining quota and reset window in IETF RateLimit structured-field format.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "\"catalog\";r=119;t=60"
                  ]
                }
              },
              "RateLimit-Limit": {
                "description": "Compatibility form of the request quota.",
                "schema": {
                  "type": "integer",
                  "examples": [
                    120
                  ]
                }
              },
              "RateLimit-Remaining": {
                "description": "Compatibility form of remaining request quota.",
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "description": "Seconds until the quota window resets.",
                "schema": {
                  "type": "integer"
                }
              },
              "API-Version": {
                "description": "Current major API version.",
                "schema": {
                  "type": "string",
                  "examples": [
                    "v1"
                  ]
                }
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Site": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "url",
          "description",
          "email",
          "llms",
          "sitemap",
          "openapi",
          "developers",
          "cli"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "description": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "llms": {
            "type": "string",
            "format": "uri"
          },
          "sitemap": {
            "type": "string",
            "format": "uri"
          },
          "openapi": {
            "type": "string",
            "format": "uri"
          },
          "developers": {
            "type": "string",
            "format": "uri"
          },
          "cli": {
            "$ref": "#/components/schemas/CliInstall"
          },
          "sameAs": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uri"
            }
          }
        }
      },
      "CliInstall": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "npx",
          "brew"
        ],
        "properties": {
          "npx": {
            "type": "string"
          },
          "brew": {
            "type": "string"
          }
        }
      },
      "WorkItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "url",
          "page",
          "blurb",
          "why",
          "tags"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "page": {
            "type": "string",
            "format": "uri"
          },
          "blurb": {
            "type": "string"
          },
          "why": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "github": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "Post": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "slug",
          "title",
          "dek",
          "pubDate",
          "kind",
          "category",
          "url"
        ],
        "properties": {
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "dek": {
            "type": "string"
          },
          "pubDate": {
            "type": "string",
            "format": "date"
          },
          "kind": {
            "type": "string",
            "enum": [
              "essay",
              "x"
            ]
          },
          "category": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "xUrl": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "ProblemDetails": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "type",
          "title",
          "status",
          "detail",
          "instance",
          "code",
          "resolution"
        ],
        "properties": {
          "type": {
            "type": "string",
            "format": "uri"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "integer",
            "minimum": 400,
            "maximum": 599
          },
          "detail": {
            "type": "string"
          },
          "instance": {
            "type": "string",
            "format": "uri"
          },
          "code": {
            "type": "string",
            "enum": [
              "method_not_allowed",
              "api_route_not_found",
              "rate_limit_exceeded"
            ]
          },
          "resolution": {
            "type": "string"
          },
          "documentation_url": {
            "type": "string",
            "format": "uri"
          }
        }
      }
    }
  }
}
