openapi: 3.1.0 info: title: LottoFlick (Static Site) - Deep Link & Content Spec version: "1.0.0" description: > LottoFlick is a static HTML/JS site (no server-side API). This file documents the stable URL patterns, query parameters, and content JSON files so agents and crawlers can link to and consume the site's content. servers: - url: https://lottoflick.com tags: - name: Pages description: User-facing HTML pages. Support query parameters `lottery` and `lang`. - name: Content description: Lottery- and language-specific JSON content used to render pages. paths: /index.html: get: tags: [Pages] summary: Home parameters: - $ref: "#/components/parameters/lottery" - $ref: "#/components/parameters/lang" responses: "200": description: HTML /guide.html: get: tags: [Pages] summary: Guide parameters: - $ref: "#/components/parameters/lottery" - $ref: "#/components/parameters/lang" responses: "200": description: HTML /tips.html: get: tags: [Pages] summary: Tips parameters: - $ref: "#/components/parameters/lottery" - $ref: "#/components/parameters/lang" responses: "200": description: HTML /statistics.html: get: tags: [Pages] summary: Statistics parameters: - $ref: "#/components/parameters/lottery" - $ref: "#/components/parameters/lang" responses: "200": description: HTML /probability.html: get: tags: [Pages] summary: Probability parameters: - $ref: "#/components/parameters/lottery" - $ref: "#/components/parameters/lang" responses: "200": description: HTML /calculator.html: get: tags: [Pages] summary: Tax Calculator parameters: - $ref: "#/components/parameters/lottery" - $ref: "#/components/parameters/lang" responses: "200": description: HTML /history.html: get: tags: [Pages] summary: Stories / History parameters: - $ref: "#/components/parameters/lottery" - $ref: "#/components/parameters/lang" responses: "200": description: HTML /content/{lotteryId}/{page}-{lang}.json: get: tags: [Content] summary: Content JSON for a page, lottery, and language parameters: - name: lotteryId in: path required: true schema: $ref: "#/components/schemas/LotteryId" - name: page in: path required: true schema: $ref: "#/components/schemas/ContentPage" - name: lang in: path required: true schema: $ref: "#/components/schemas/Lang" responses: "200": description: Content JSON (section content may include HTML) content: application/json: schema: $ref: "#/components/schemas/ContentDocument" "404": description: Not found components: parameters: lottery: name: lottery in: query required: false schema: $ref: "#/components/schemas/LotteryId" description: Selected lottery id (affects content and generator rules). lang: name: lang in: query required: false schema: $ref: "#/components/schemas/Lang" description: UI/content language code. schemas: Lang: type: string enum: [en, ko, ja, es, fr, de, zh] LotteryId: type: string enum: - kr-lotto645 - us-powerball - us-megamillions - eu-euromillions - eu-eurojackpot - uk-lotto - uk-thunderball - jp-loto6 - jp-loto7 - au-ozlotto - au-powerball ContentPage: type: string enum: [guide, tips, statistics, probability, calculator, history] ContentSection: type: object additionalProperties: false properties: title: type: string content: type: string description: May contain HTML snippets. required: [title, content] ContentDocument: type: object additionalProperties: false properties: title: type: string description: type: string sections: type: array items: $ref: "#/components/schemas/ContentSection" required: [title, description, sections]