{
 "openapi": "3.1.0",
 "info": {
  "title": "The Forecast Post",
  "version": "1.0.0",
  "description": "A chronicle of American weather and climate",
  "contact": {
   "url": "https://forecastpost.com"
  }
 },
 "servers": [
  {
   "url": "https://forecastpost.com"
  }
 ],
 "paths": {
  "/api/v1/mileposts.json": {
   "get": {
    "summary": "The chronicle index, newest first",
    "responses": {
     "200": {
      "description": "index",
      "content": {
       "application/json": {}
      }
     }
    }
   }
  },
  "/api/v1/mp/{number}.json": {
   "get": {
    "summary": "One milepost, with claims and provenance",
    "parameters": [
     {
      "name": "number",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "milepost",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Milepost"
        }
       }
      }
     },
     "404": {
      "description": "no such milepost"
     }
    }
   }
  },
  "/api/v1/desks.json": {
   "get": {
    "summary": "The desks and what each one watches",
    "responses": {
     "200": {
      "description": "desks"
     }
    }
   }
  },
  "/api/v1/ledger.json": {
   "get": {
    "summary": "Standing forecast skill by model and lead",
    "responses": {
     "200": {
      "description": "ledger"
     }
    }
   }
  }
 },
 "components": {
  "schemas": {
   "Milepost": {
    "type": "object",
    "properties": {
     "number": {
      "type": "integer",
      "description": "issued once, never reissued"
     },
     "headline": {
      "type": "string"
     },
     "standfirst": {
      "type": "string"
     },
     "desk": {
      "type": "string"
     },
     "dateline": {
      "type": [
       "object",
       "null"
      ]
     },
     "published": {
      "type": "string",
      "format": "date-time"
     },
     "access": {
      "type": "string",
      "enum": [
       "free",
       "members"
      ]
     },
     "body_html": {
      "type": "string",
      "description": "empty when access is members"
     },
     "teaser_html": {
      "type": "string"
     },
     "claims": {
      "type": "array",
      "items": {
       "type": "object",
       "description": "One assertion. At least one of `normal`, `rank` or `of` is always present \u2014 a claim with a value and none of the three is rejected at build time.",
       "properties": {
        "text": {
         "type": "string"
        },
        "value": {
         "type": [
          "number",
          "null"
         ]
        },
        "unit": {
         "type": [
          "string",
          "null"
         ]
        },
        "normal": {
         "type": [
          "number",
          "null"
         ],
         "description": "what the value is measured against"
        },
        "rank": {
         "type": [
          "integer",
          "null"
         ]
        },
        "of": {
         "type": [
          "integer",
          "null"
         ],
         "description": "denominator the rank or count is drawn from"
        },
        "period": {
         "type": [
          "string",
          "null"
         ],
         "description": "period of record the rank refers to"
        },
        "source": {
         "type": [
          "string",
          "null"
         ]
        }
       }
      }
     },
     "provenance": {
      "type": "object"
     },
     "supersedes": {
      "type": [
       "integer",
       "null"
      ]
     },
     "superseded_by": {
      "type": [
       "integer",
       "null"
      ]
     },
     "digest": {
      "type": "string",
      "description": "sha256 of the entry as published"
     }
    },
    "required": [
     "number",
     "headline",
     "standfirst",
     "desk",
     "published",
     "access"
    ]
   },
   "Claim": {
    "type": "object",
    "description": "One assertion. At least one of `normal`, `rank` or `of` is always present \u2014 a claim with a value and none of the three is rejected at build time.",
    "properties": {
     "text": {
      "type": "string"
     },
     "value": {
      "type": [
       "number",
       "null"
      ]
     },
     "unit": {
      "type": [
       "string",
       "null"
      ]
     },
     "normal": {
      "type": [
       "number",
       "null"
      ],
      "description": "what the value is measured against"
     },
     "rank": {
      "type": [
       "integer",
       "null"
      ]
     },
     "of": {
      "type": [
       "integer",
       "null"
      ],
      "description": "denominator the rank or count is drawn from"
     },
     "period": {
      "type": [
       "string",
       "null"
      ],
      "description": "period of record the rank refers to"
     },
     "source": {
      "type": [
       "string",
       "null"
      ]
     }
    }
   }
  }
 }
}