Game design document
# Foldwake — Game Design Document v0.1
## Source and Truth Labels
This document is the authoritative player-facing contract for concept `foldwake`. The owner brief is CONFIRMED. Rules, UX, scope, cost, and content counts in this document are DESIGN TARGETS until prototype or player evidence exists. Originality, audience demand, retention, CPI, and revenue are UNKNOWN here and must be assessed only in later gates. The defining promise is: fold a nautical chart, change its topology, and rescue every lantern boat.
## Player Promise and Audience
Foldwake is a premium-feeling portrait spatial puzzle for mobile players who enjoy short, thoughtful sessions and visible cause and effect. The player becomes a chartkeeper who literally reshapes a paper sea during a storm. A session lasts 45–120 seconds; the first session delivers a real fold, a rescued boat, and a completed map page within two minutes. The primary audience is puzzle players aged 13+ who like elegant one-input games, tactile materials, and deterministic retries rather than timers or twitch execution.
## Fantasy, Promise, Audience, and Genre
Genre: deterministic spatial transformation puzzle. Fantasy: calmly reshape a living chart to guide fragile lantern boats home. Store promise: every crease rescues or endangers something now and permanently changes the geometry of what can happen next. `ENV-CHART` is the playable paper archipelago; `ENV-STORM` frames urgency without adding a timer; `ENV-ATLAS` holds completed level pages.
## Design Pillars and Non-Goals
1. `P-TOPOLOGY`: every committed `M-FOLD` must alter later legal spatial relationships, not merely play an animation.
2. `P-LEGIBLE`: `M-PREVIEW` exposes the moving half, overlap cells, resolution order, and projected consequences before release.
3. `P-ONE-THUMB`: all core play fits one portrait hand with no multi-touch requirement.
4. `P-FAIR`: no random outcomes, hidden collision priorities, energy timers, forced ads, or paid reasoning bypasses.
5. `P-PAPER`: tactile paper depth supports readability; decoration never hides symbols or fold boundaries.
Non-goals: visual-novel structure, branching dialogue, combat, freeform origami, decorative fold-a-picture play, physics randomness, base building, gacha, multiplayer, or live-service dependencies.
## Design Pillars
`P-TOPOLOGY`, `P-LEGIBLE`, `P-ONE-THUMB`, `P-FAIR`, and `P-PAPER` are release invariants. If testing shows the game is satisfying only when a fold does not change future topology, or when hints solve decisions for the player, the concept must be revised rather than padded with content.
## Player-Facing Fingerprint
- Input: drag a horizontal or vertical `UI-CREASE-RAIL`, inspect `M-PREVIEW`, release to commit `M-FOLD`.
- Decision: select crease, moving side, and fold order that rescues now without destroying future routes.
- Objective: overlap each `E-BOAT` with its matching `E-HARBOR` within the crease budget.
- Failure: `E-BOAT` overlaps `E-REEF`, two boats overlap, a boat leaves the surviving chart, or no crease remains.
- State change: `M-RESOLVE` shrinks the board, changes adjacency and layer order, rotates affected `E-TIDE`, removes rescued boats, and decrements the budget.
- Progression: five six-level chapters add paired boats, reefs, tides, locked edges, and ordered rescues.
- Content: authored start layouts generated from a small deterministic tile grammar.
- Presentation: top-down 2D cut paper, indigo sea, warm boats, coral hazards, cyan crease previews.
- Metagame: completed maps restore pages in `ENV-ATLAS`; no power stats or upgrade grind.
## Core Loop and Player Verbs
Read the remaining boats and crease budget → drag `UI-CREASE-RAIL` to preview `M-PREVIEW` → move across legal crease positions and switch the folding side → release to commit `M-FOLD` → watch the fixed `M-RESOLVE` order → continue, succeed, fail, or invoke `M-RETRY`.
Legal verbs are inspect, drag, choose side, cancel before release, commit, pause, retry, and advance. Undo after a committed fold is not available in the base rules because permanence is the central consequence. `UI-PRIMARY` advances or retries; `UI-MODAL` owns pause and confirmations; `UI-TOPBAR` presents level, remaining boats, and creases.
## Camera, Dimension, and Controls
The product uses portrait-only 2D with a fixed orthographic top-down camera and a 360×800 logical canvas. The full live `ENV-CHART` remains visible between `UI-TOPBAR` and the lower thumb zone. One-finger drag begins on a legal `UI-CREASE-RAIL`, crossing the crease chooses the moving side, returning to origin or lifting outside cancels, and release on a valid preview commits. Gameplay never uses camera rotation, pan, zoom, multi-touch, free-angle input, or perspective-dependent adjacency.
## Deterministic Rules
1. A level starts on an even-width or even-height rectangular `ENV-CHART` grid. Each cell contains at most one base tile plus at most one occupant or marker.
2. A legal crease lies only between complete rows or columns. Locked edges disable creases crossing their lock icon.
3. During `M-PREVIEW`, the player chooses the moving side. The moving half mirrors across the crease onto the stationary half. No state mutates before release.
4. On release, resolution occurs cell by cell from nearest to farthest from the crease, then reading order top-to-bottom and left-to-right.
5. Moving `E-TIDE` arrows rotate 180 degrees with the fold. Stationary arrows do not rotate.
6. `E-BOAT` + matching `E-HARBOR` = rescue; both occupant and harbor beacon become a completed seal.
7. `E-BOAT` + nonmatching harbor = neutral stack; the boat remains active on top.
8. `E-BOAT` + `E-REEF`, boat + boat, or any boat landing beyond the stationary footprint = immediate failure.
9. Empty chart and decoration can stack without gameplay effect. `E-REEF` remains hazardous on any visible top layer.
10. After resolution, the moving half is removed from logical dimensions, the crease budget decrements once, and input unlocks.
11. If no active boat remains, enter `ST-SUCCESS`. If an immediate hazard resolved or budget reaches zero with boats remaining, enter `ST-FAILURE`. Otherwise enter `ST-ACTIVE` on the smaller board.
12. There is no randomness. Identical start state and input sequence produce byte-identical state logs.
13. Android/system back while active opens `ST-PAUSED`; back on an overlay closes it; back from home requests exit. Interruptions auto-pause.
14. `M-RETRY` restores the exact authored start state in under 500 ms. A pre-release drag can be cancelled by returning to its origin or lifting outside the valid rail.
## Failure, Consequence, and State Change
Every accepted fold is a permanent state transition inside the attempt. Its three consequences are visible: the chart bounds contract, overlapped pieces resolve, and the crease counter decreases. `V-FOLD` shows the moving paper with a restrained 280 ms hinge animation; `V-RESCUE` produces a warm ring and lantern chime; `V-WRECK` uses a coral crack, double-pulse outline, and low thud. Failure explains the exact rule in plain language, highlights the decisive cells for two seconds, then offers `M-RETRY`. Success uses `V-SUCCESS` and shows the final compact chart becoming an atlas page.
## Progression and Content Grammar
Launch scope is 30 authored levels in five chapters: Safe Harbor (single boat, 4×4), Crosswinds (two boats and matching symbols), Sharp Water (reefs), Turning Tide (rotating `E-TIDE`), and Last Crease (locked edges and rescue order). Difficulty variables are grid size, foldable axes, crease budget, pair count, hazard density, tide rotation, locks, solution depth, and decoy safe folds. Each level has at least one verified solution and no more than eight legal previews at any state. Three optional badges reward no-cancel completion, par creases, and all-symbol inspection; badges never affect power.
The content pipeline serializes grid, layers, entities, locks, budget, tutorial callouts, and canonical solution. A solver verifies solvability, detects alternative solutions, and estimates branching. The launch target is 30 levels; 60 additional layouts are a post-validation possibility, not a launch promise.
## State and Content Inventory
The nine screen IDs are `SCR-ONBOARDING`, `SCR-HOME`, `SCR-GAMEPLAY`, `SCR-PAUSE`, `SCR-SUCCESS`, `SCR-FAILURE`, `SCR-SETTINGS`, `SCR-ACCESSIBILITY`, and `SCR-LEGAL`. Important runtime states are `ST-FRESH`, `ST-ACTIVE`, `ST-PAUSED`, `ST-SUCCESS`, `ST-FAILURE`, and `ST-ERROR`. Systemic content uses `M-FOLD`, `M-PREVIEW`, `M-RESOLVE`, `M-RETRY`; `E-BOAT`, `E-HARBOR`, `E-REEF`, `E-TIDE`, `E-CREASE`; and `ENV-CHART`, `ENV-STORM`, `ENV-ATLAS`. This is the full launch visual inventory; adding another mechanic or entity requires a GDD revision and repeat audit.
## Difficulty, Progression, and Economy
Difficulty rises through consequence depth rather than speed. Chapter one teaches one rule per screen; chapter two asks pair ordering; chapter three introduces lethal overlaps; chapter four changes orientation; chapter five combines established rules. Completing a level restores one `ENV-ATLAS` page and awards up to three cosmetic stamps. Stamps only unlock alternate paper palettes that preserve semantic colors and patterns. No consumable currency exists.
## First Session and FTUE
`SCR-ONBOARDING` opens directly on a two-cell instructional chart with one boat and harbor. A ghost crease demonstrates direction once, then waits. The first committed fold uses the real rules. Success transitions to `SCR-HOME`, where level two is prominent. The tutorial can be skipped from a clearly labeled control and replayed from `SCR-SETTINGS`. Hints explain a rule or highlight a viable crease family; they never execute a move. First-launch consent and legal links remain accessible without blocking offline play.
## Economy and Monetization Boundaries
The base test build has no ads or purchases. A future commercial build may use either a single premium unlock after a free chapter or opt-in rewarded hints, subject to evidence and store review. It must not combine both at launch, sell solutions, use forced interstitials, energy, loot boxes, artificial wait timers, streak loss, manipulative scarcity, or purchases aimed at children. Purchase restoration, regional price disclosure, consent, and parental gates are mandatory if monetization is added.
## Monetization Constraints
Monetization cannot alter `M-FOLD`, `M-PREVIEW`, `M-RESOLVE`, failure rules, crease budgets, or canonical level solutions. `UI-PRIMARY` may show “Unlock full atlas” only after chapter one and never on `ST-FAILURE`. Analytics and ads default off until consent where legally required.
## UX, Accessibility, Audio, and VFX
Required screens are `SCR-ONBOARDING`, `SCR-HOME`, `SCR-GAMEPLAY`, `SCR-PAUSE`, `SCR-SUCCESS`, `SCR-FAILURE`, `SCR-SETTINGS`, `SCR-ACCESSIBILITY`, and `SCR-LEGAL`. Required important states are `ST-FRESH`, `ST-ACTIVE`, `ST-PAUSED`, `ST-SUCCESS`, `ST-FAILURE`, and `ST-ERROR`.
Portrait safe areas reserve 24 logical pixels around cutouts and 16 around controls. Touch targets are at least 48×48 logical pixels. `A-COLOR` pairs every semantic color with silhouette, icon, and texture; `A-MOTION` replaces folds with a 100 ms crossfade and disables camera drift; `A-TEXT` supports 100%, 125%, and 150% UI type without covering the board; `A-HAPTIC` separates preview tick, commit, rescue, and failure and can disable all vibration. Audio groups are music, ambience, effects, and haptics. `UI-TOGGLE` exposes individual settings. No VFX flashes more than three times per second; storm lightning remains decorative, low contrast, and disabled in reduced motion.
## UX and Accessibility
`UI-TOPBAR` stays above the chart and never overlaps the fold surface. `UI-CREASE-RAIL` has arrowheads and hatch patterns so fold direction is never color-only. `UI-PRIMARY` remains in the lower thumb zone. `UI-MODAL` traps focus, closes with back, and never hides the reason for failure. `SCR-ACCESSIBILITY` is reachable from first launch and settings. `ST-ERROR` preserves the level state and offers retry or safe return home.
## Audio and VFX
`V-FOLD` is a soft paper hinge with a quiet fiber scrape; `V-RESCUE` is a 350 ms lantern ring with paired bell and light haptic; `V-WRECK` is a non-flashing coral fracture with low thud and two heavy pulses; `V-SUCCESS` is a restrained upward lantern trail into `ENV-ATLAS`. Audio confirms but never replaces symbols or text. The runtime budget is 24 simultaneous particles, one full-screen overlay, and no post-processing required.
## Technical Constraints
Target iOS 16+ and Android 10+ phones, 60 fps on a 2019 mid-tier device, 30 fps fallback, under 150 MB installed, under 250 MB peak memory, and under two seconds cold-to-home after first load. Core play is offline. Cloud save and analytics are optional adapters and may fail without blocking play. State is integer-grid deterministic; a replay consists of level ID plus ordered crease index and moving side. No gameplay physics engine, account, server authority, or generative runtime dependency is allowed.
## Analytics and Technical Constraints
Local QA records tutorial start/complete/skip, level start, preview count, preview cancel, fold commit, failure rule, retry, success, solution length, elapsed time, accessibility settings, and frame-time buckets. Production telemetry requires consent and coarse event data only; no free-text or precise location. Acceptance builds must prove deterministic replay across 1,000 generated sequences and visual layout at 360×800 logical portrait resolution.
## Risks, Falsifiers, and Acceptance Criteria
Top risks are similarity to decorative paper-fold games, unreadable layer depth, preview solving too much, content exhaustion, and mismatch between generated art and the actual rule system. Kill or redesign if at least 6 of 10 unfamiliar target players describe the core as “just fold the picture,” fewer than 7 of 10 correctly predict a boat/reef consequence after the tutorial, median level-three completion exceeds five minutes, or the solver cannot produce 30 distinct validated layouts without a new verb. Do not compensate with meta progression before resolving the core.
## Risks and Falsifiers
Originality must survive live comparison at the dominant-loop and consequence-structure layers. Market appeal is not assumed by elegance. The fold preview fails if players commit accidental sides, the paper style fails if hazards disappear against decoration, and the content plan fails if authored levels collapse to repeated mirrored solutions. Each is an explicit return-to-GDD trigger.
## Acceptance Criteria
- Given any authored state, `M-PREVIEW` displays the exact cells, moving side, rotated `E-TIDE`, rescue, and hazard results that `M-RESOLVE` will produce.
- A committed `M-FOLD` cannot leave logical width/height unchanged and always decrements the budget once.
- `E-BOAT`/`E-HARBOR`, `E-REEF`, collision, off-chart, budget, `ST-SUCCESS`, and `ST-FAILURE` rules pass deterministic unit tests.
- Every required screen and important state is represented in UX and the Art Bible with standalone portrait evidence.
- All interactive targets meet 48×48, safe areas remain clear at 360×800, semantic states pass non-color inspection, and reduced motion removes hinge rotation.
- Ten unfamiliar users complete the tutorial; at least seven predict the next fold consequence, and at least six request another level without prompting.
- No HTML prototype begins until the owner accepts the complete GDD-bound Art Bible and a manual Codex design lock binds its package hash.
Art Bible
# Foldwake GDD-Derived Art Bible
## Gameplay Frames
`ART-GAMEPLAY` / `art-bible/gameplay-active.png` is the gameplay master for `SCR-GAMEPLAY` + `ST-ACTIVE`: 360×800 portrait, 4×5 `ENV-CHART`, one cyan `M-PREVIEW`, two `E-BOAT`, paired `E-HARBOR`, one `E-REEF`, one `E-TIDE`, `UI-TOPBAR`, remaining-crease count, and clear lower guidance. It must make moving/stationary halves and projected safe/hazard overlaps understandable without decorative explanation.
Mechanic coverage is explicitly limited to `M-FOLD`, `M-PREVIEW`, `M-RESOLVE`, and `M-RETRY`; reference frames may show their before/after states but cannot add a player verb.
Standalone companions: `ART-ONBOARDING` pairs `SCR-ONBOARDING`/`ST-FRESH`; `ART-HOME` covers `SCR-HOME`; `ART-PAUSE` pairs `SCR-PAUSE`/`ST-PAUSED`; `ART-SUCCESS` pairs `SCR-SUCCESS`/`ST-SUCCESS`; `ART-FAILURE` pairs `SCR-FAILURE`/`ST-FAILURE`; `ART-SETTINGS` covers `SCR-SETTINGS`; `ART-ACCESSIBILITY` covers `SCR-ACCESSIBILITY`; `ART-LEGAL-ERROR` pairs `SCR-LEGAL`/`ST-ERROR`. No frame may introduce a mechanic, currency, character, shop, daily reward, landscape layout, or free-angle fold.
`BOARD-VISUAL-BLUEPRINT` / `art-bible/visual-blueprint.png` is the deterministic 2048×1152
generation blueprint. It combines the sole gameplay master with the exact `M-FOLD`, `M-PREVIEW`,
`M-RESOLVE`, entity, system, layout, and implementation contracts before companion generation.
`BOARD-IMPLEMENTATION-OVERVIEW` / `art-bible/implementation-board.png` is the deterministic
3840×2160 final overview. It composes all nine manifest assets into the core-loop storyboard,
first-time teaching sequence, complete portrait screen family, and implementation anchors. Its text
comes from `board-spec.json`; neither board asks the image model to invent copy or mechanics.
## Entities
- `E-BOAT`: 34×28 base; crescent cream hull, ink triangular sail, 8 px amber lantern, pair glyph on sail. Active, preview-moving, projected-rescue, rescued seal, and projected-wreck outlines.
- `E-HARBOR`: 32 px ring dock, teal inner water, two pier notches, pair glyph centered. Empty, projected match, completed seal.
- `E-REEF`: 34 px irregular five-spike coral crown with dark diagonal hatch. Neutral, projected collision, decisive failure outline. Never a cute blob.
- `E-TIDE`: 28 px broad double-line arrow cut into the paper; active and 180° preview-rotated states. It is a rule marker, not animated water.
- `E-CREASE`: 4 px cyan dash, arrowheads every 64 px, draggable rail halo, and moving-half dot texture. Invalid rails are muted with a slash, not just red.
## Environments and Objects
`ENV-CHART` is a cream-edged indigo paper grid with 2 px seams, subtle fiber, and deterministic layer lips. Gameplay is flat orthographic even during `V-FOLD`. `ENV-STORM` is a dark outer frame with sparse cloud cutouts and no moving lightning under `A-MOTION`. `ENV-ATLAS` is a stitched navy book holding completed compact charts; it appears on home and success only. One base tile sprite, one edge mask family, and reusable decorative islands are enough; decorations occupy corners and cannot cross entity clear zones.
## UI, HUD, and Icons
`UI-TOPBAR`: x=16–344, y=24–96, stitched indigo strip, level left, boat count center, crease count right, 56×56 pause hit area. `UI-CREASE-RAIL`: board-edge anchored, 16 px invisible touch extension, cyan active state, dots on the moving half. `UI-PRIMARY`: lower-center cream capsule, 328×56 maximum, ink label, cyan focus ring, pressed offset 2 px. `UI-MODAL`: x=24–336, vertically centered off-white folded card on 68% indigo scrim; heading, reason, then actions. `UI-TOGGLE`: 56×32 track plus icon and explicit On/Off label, 48 px row height. Icons use 2.5 px rounded ink strokes and must survive at 20 px.
## Typography
Display: rounded humanist semibold similar in mood to Nunito Sans but implemented with a properly licensed bundled face. Body: neutral sans regular/medium. Numerals: tabular. Minimum essential type 17 px at 100%; display 28–34; top status 16–18; buttons 18 semibold; legal body 16 with 1.5 line height. `A-TEXT` scales 100/125/150%, permits two-line labels, and never shrinks text to fit. Use platform fallback for unsupported scripts and mirror directional UI in RTL while keeping board coordinates stable.
## VFX and Motion
`V-FOLD`: 280 ms, moving half hinges over the crease, shadow peaks at 55%, then state snaps exactly to `M-RESOLVE`; paper fiber scrape plus one medium `A-HAPTIC` pulse. `V-RESCUE`: 350 ms amber-to-mint ring, lantern lifts 8 px, bell plus light pulse. `V-WRECK`: 240 ms coral crack, static jagged outline, low thud plus two pulses, zero flash. `V-SUCCESS`: 600 ms three lantern motes rise into `ENV-ATLAS`, then result controls enable. Budget: 24 particles, one overlay, no blur/post-process. `A-MOTION` uses a 100 ms crossfade and static outcome icons.
## Accessibility
`A-COLOR`: verify grayscale and deuteranopia simulation; pair colors with glyph, silhouette, hatch, and arrow. `A-MOTION`: remove hinge, drift, parallax, and lantern travel; keep before/after topology. `A-TEXT`: check every standalone frame at 150%, with board clear and no clipped labels. `A-HAPTIC`: offer On/Off, never required. Minimum 4.5:1 body contrast, 3:1 large/icon contrast, 48×48 touch areas, no flash, no decorative overlap of critical cells, and screen-reader cell summaries.
## Export Rules
Reference frames: sRGB PNG, 360×800 portrait, no alpha requirement, filenames in kebab case. Runtime sources: layered SVG or 4× raster PSD equivalents at 1440×3200; export sprites at 1×/2×/3× with transparent padding, grid pivots at center, fold edges on whole pixels, UI as nine-slice where applicable. Texture atlas max 2048², premultiplied alpha off, no lossy compression on glyphs. Target visual package under 24 MB and peak gameplay draw calls under 40.
## Do and Don't
Do preserve `P-TOPOLOGY`: show the surviving board boundary and moving side. Do preserve `P-LEGIBLE`: preview every projected rescue and hazard. Do keep `E-BOAT`, `E-HARBOR`, `E-REEF`, and `E-TIDE` clear at thumbnail scale. Do place `UI-PRIMARY` in the lower thumb zone. Don’t add a hidden picture, avatar path, dialogue, coins, boosters, energy, ad rewards, shop, free-angle paper corner, realistic ocean, isometric depth, candy gloss, or excessive celebration. Any reference that makes the player ask which cells will overlap has failed.
## Provenance
All nine reference frames are newly generated for run `2026-08-foldwake-en-us`, concept `foldwake`, by OpenAI `gpt-image-2` through the Codex image-generation tool on 2026-08-19. `ART-GAMEPLAY` is the sole master; all other prompts cite it as a consistency reference. Prompt text and output filenames are recorded in `image-prompts/` and `asset-manifest.json`. The generated references are design evidence; final production assets require project licensing and export review.
## QA
Machine QA verifies PNG integrity, exact 360×800 frame dimensions, exact 2048×1152 and 3840×2160
board dimensions, distinct output bytes, complete inventory coverage, board membership, source-ref
traceability, snapshot hashes, one gameplay master, and package hash. Visual QA must inspect both
boards and each underlying full-resolution image for composition, screen/state fidelity, legibility,
safe areas, consistency, accessibility, invented mechanics, and production budget. The independent
owner must review the complete package before Phase 08 can pass. The accepted review is recorded
manually in Codex, and Phase 09 binds the exact package hash before prototype work begins.
Source package files (18)
application/json, 7611 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/artifacts/board-spec.json
{
"version": 1,
"title": "Foldwake",
"subtitle": "Paper-sea fold puzzle — gameplay and UI implementation guide",
"theme": {
"background": "#071827",
"surface": "#102a40",
"paper": "#f1e4c6",
"ink": "#172633",
"muted": "#9cb3c1",
"accent": "#45d7df",
"danger": "#df6b58",
"gold": "#d9a84e"
},
"overview": [
{
"label": "Fantasy",
"text": "Fold a living nautical chart so paired rescue boats land safely on their matching harbors.",
"sourceRefs": [
"M-FOLD",
"E-BOAT",
"E-HARBOR"
]
},
{
"label": "Genre",
"text": "Single-screen deterministic spatial transformation puzzle with short mobile sessions.",
"sourceRefs": [
"M-FOLD",
"M-RESOLVE"
]
},
{
"label": "Platform",
"text": "Phone and tablet, portrait only, offline-first, one-finger touch controls.",
"sourceRefs": [
"SCR-GAMEPLAY",
"UI-CREASE-RAIL"
]
},
{
"label": "Core loop",
"text": "Read chart → choose crease → preview overlap → release to resolve → rescue both pairs or retry.",
"sourceRefs": [
"M-FOLD",
"M-PREVIEW",
"M-RESOLVE",
"M-RETRY"
]
},
{
"label": "Visual identity",
"text": "Indigo stitched atlas, cream paper charts, cyan crease energy, amber rescue light, coral hazards.",
"sourceRefs": [
"ENV-CHART",
"ENV-ATLAS",
"E-CREASE",
"E-REEF"
]
},
{
"label": "Camera",
"text": "Locked orthographic top-down board; folding changes topology, never camera perspective.",
"sourceRefs": [
"ENV-CHART",
"V-FOLD"
]
},
{
"label": "Readability",
"text": "Glyph, silhouette, hatch, arrows, and labels duplicate every critical color state.",
"sourceRefs": [
"A-COLOR",
"A-TEXT"
]
},
{
"label": "Hard exclusions",
"text": "No free-angle folds, realistic ocean, currencies, boosters, shop, dialogue, or decorative depth.",
"sourceRefs": [
"M-FOLD",
"ENV-CHART"
]
}
],
"gameplayFlow": [
{
"step": 1,
"title": "Read the live chart",
"description": "Identify two boats, their paired harbors, the reef, tide arrow, and available crease rail.",
"assetId": "ART-GAMEPLAY",
"sourceRefs": [
"ST-ACTIVE",
"E-BOAT",
"E-HARBOR",
"E-REEF",
"E-TIDE"
]
},
{
"step": 2,
"title": "Touch a crease",
"description": "Press the board-edge rail; the selected crease and moving half become explicit.",
"assetId": "ART-ONBOARDING",
"sourceRefs": [
"M-FOLD",
"E-CREASE",
"UI-CREASE-RAIL"
]
},
{
"step": 3,
"title": "Preview topology",
"description": "Drag along the rail to see every projected rescue, tide rotation, and reef collision before commitment.",
"assetId": "ART-GAMEPLAY",
"sourceRefs": [
"M-PREVIEW",
"E-TIDE",
"E-REEF",
"A-COLOR"
]
},
{
"step": 4,
"title": "Release to resolve",
"description": "The moving half hinges over the crease and the deterministic board state snaps into place.",
"assetId": "ART-GAMEPLAY",
"sourceRefs": [
"M-RESOLVE",
"V-FOLD"
]
},
{
"step": 5,
"title": "Complete both rescues",
"description": "Both paired boats overlap their matching harbors without touching a reef.",
"assetId": "ART-SUCCESS",
"sourceRefs": [
"ST-SUCCESS",
"V-RESCUE",
"V-SUCCESS"
]
},
{
"step": 6,
"title": "Understand failure",
"description": "A reef collision names the invalid fold, preserves the chart context, and offers an immediate retry.",
"assetId": "ART-FAILURE",
"sourceRefs": [
"ST-FAILURE",
"V-WRECK",
"M-RETRY"
]
}
],
"tutorial": [
{
"title": "Observe",
"instruction": "Find the boat and the harbor carrying the same pair glyph.",
"sourceRefs": [
"E-BOAT",
"E-HARBOR"
]
},
{
"title": "Touch",
"instruction": "Press and hold the cyan crease rail at the board edge.",
"sourceRefs": [
"E-CREASE",
"UI-CREASE-RAIL"
]
},
{
"title": "Drag",
"instruction": "Move along the locked rail; free-angle folding is never offered.",
"sourceRefs": [
"M-FOLD"
]
},
{
"title": "Preview",
"instruction": "Read projected matches, tide rotation, and hatched reef danger.",
"sourceRefs": [
"M-PREVIEW",
"E-TIDE",
"E-REEF"
]
},
{
"title": "Release",
"instruction": "Commit only when the visible topology produces a safe overlap.",
"sourceRefs": [
"M-RESOLVE",
"V-FOLD"
]
},
{
"title": "Rescue",
"instruction": "Match both boats to both harbors to complete the chart.",
"sourceRefs": [
"V-RESCUE",
"ST-SUCCESS"
]
},
{
"title": "Collision",
"instruction": "A reef overlap ends the attempt without a surprise hidden rule.",
"sourceRefs": [
"V-WRECK",
"ST-FAILURE"
]
},
{
"title": "Retry",
"instruction": "Restart the same chart immediately and apply the learned correction.",
"sourceRefs": [
"M-RETRY"
]
}
],
"entityCards": [
{
"title": "Rescue boat",
"description": "Cream hull, amber lantern, and pair glyph; shows active, projected, rescued, and wrecked states.",
"sourceRefs": [
"E-BOAT"
]
},
{
"title": "Harbor",
"description": "Teal ring dock with pair glyph; shows empty, projected match, and completed seal.",
"sourceRefs": [
"E-HARBOR"
]
},
{
"title": "Reef",
"description": "Irregular coral crown plus diagonal hatch; collision remains readable without color.",
"sourceRefs": [
"E-REEF",
"A-COLOR"
]
},
{
"title": "Tide arrow",
"description": "Broad double-line rule marker that rotates with the folded board half.",
"sourceRefs": [
"E-TIDE"
]
}
],
"systemCards": [
{
"title": "Crease fold",
"description": "One axis-aligned rail defines the moving half and legal hinge.",
"sourceRefs": [
"M-FOLD",
"E-CREASE"
]
},
{
"title": "Overlap preview",
"description": "All projected rescue and hazard outcomes appear before release.",
"sourceRefs": [
"M-PREVIEW",
"A-COLOR"
]
},
{
"title": "Deterministic resolve",
"description": "Release applies the previewed topology exactly; there is no randomness.",
"sourceRefs": [
"M-RESOLVE"
]
},
{
"title": "Immediate retry",
"description": "Failure preserves the visible cause and restarts the same chart without cost.",
"sourceRefs": [
"M-RETRY",
"ST-FAILURE"
]
}
],
"screenAssetIds": [
"ART-GAMEPLAY",
"ART-ONBOARDING",
"ART-HOME",
"ART-PAUSE",
"ART-SUCCESS",
"ART-FAILURE",
"ART-SETTINGS",
"ART-ACCESSIBILITY",
"ART-LEGAL-ERROR"
],
"implementationNotes": [
{
"label": "HUD",
"text": "Level, boat count, crease count, and 56×56 pause target stay above the chart.",
"sourceRefs": [
"UI-TOPBAR"
]
},
{
"label": "Touch",
"text": "Crease rails receive a 16 px invisible extension; every target is at least 48×48.",
"sourceRefs": [
"UI-CREASE-RAIL"
]
},
{
"label": "Type",
"text": "Essential text starts at 17 px, uses tabular numerals, and scales to 150% without shrinking.",
"sourceRefs": [
"A-TEXT"
]
},
{
"label": "Motion",
"text": "Fold resolves in 280 ms; reduced motion replaces the hinge with a 100 ms crossfade.",
"sourceRefs": [
"V-FOLD",
"A-MOTION"
]
},
{
"label": "Access",
"text": "Glyphs, hatches, arrows, labels, haptics settings, and screen-reader cell summaries reinforce state.",
"sourceRefs": [
"A-COLOR",
"A-HAPTIC"
]
},
{
"label": "Export",
"text": "Layered runtime sources, 1×/2×/3× sprites, whole-pixel fold edges, and a 2048² atlas ceiling.",
"sourceRefs": [
"ENV-CHART",
"E-CREASE"
]
}
],
"sourceRefs": [
"M-FOLD",
"M-PREVIEW",
"M-RESOLVE",
"M-RETRY",
"E-BOAT",
"E-HARBOR",
"E-REEF",
"E-TIDE",
"E-CREASE",
"UI-TOPBAR",
"UI-CREASE-RAIL",
"A-COLOR",
"A-MOTION",
"A-TEXT",
"A-HAPTIC",
"V-FOLD",
"V-RESCUE",
"V-WRECK",
"V-SUCCESS"
]
}text/plain; charset=utf-8, 673 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/artifacts/image-prompts/accessibility.txt
Create a standalone portrait 9:20 accessibility screen matching the supplied Foldwake gameplay master. Source refs: SCR-ACCESSIBILITY, A-COLOR, A-MOTION, A-TEXT, A-HAPTIC, UI-TOGGLE, E-BOAT, E-HARBOR, E-REEF, E-CREASE. Heading “ACCESSIBILITY”. Show a small live preview strip with lantern boat triangle glyph, harbor ring triangle glyph, jagged hatched reef, and cyan dashed crease arrow. Clear rows: Symbol Patterns ON, Reduced Motion ON, Text Size 125%, Haptics OFF, High-Contrast Crease ON, Screen Reader Labels ON; include RESET. Every toggle has icon and explicit value. Same cut-paper style and palette, excellent spacing, no color-only demo, no extra mechanics.
text/plain; charset=utf-8, 634 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/artifacts/image-prompts/failure-result.txt
Create a standalone portrait 9:20 failure result matching the supplied Foldwake gameplay master. Source refs: SCR-FAILURE, ST-FAILURE, E-BOAT, E-REEF, ENV-CHART, UI-MODAL, UI-PRIMARY, V-WRECK, A-COLOR, M-RETRY. Show a compact chart with the decisive boat and jagged coral reef cells outlined in coral plus diagonal hatch, connected by a static fold arrow. No graphic damage. Heading “REEF COLLISION”; plain line “This fold placed the boat on a reef.” Large cream “TRY AGAIN” button, smaller INSPECT and HOME. Calm, instructive, non-punitive; no hearts, lives, purchase, watch-ad continue, booster, or flashing red screen.
text/plain; charset=utf-8, 1102 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/artifacts/image-prompts/gameplay-active.txt
Create a polished portrait mobile-game reference frame at 9:20 for Foldwake. Source refs: SCR-GAMEPLAY, ST-ACTIVE, M-FOLD, M-PREVIEW, M-RESOLVE, M-RETRY, E-BOAT, E-HARBOR, E-REEF, E-TIDE, E-CREASE, ENV-CHART, ENV-STORM, UI-TOPBAR, UI-CREASE-RAIL, A-COLOR, V-FOLD. Fixed orthographic top-down 2D cut-paper nautical chart, full 4x5 board centered between top HUD and bottom thumb zone. Deep indigo sea, cream paper edges, soft fiber, warm amber lantern boats with pair glyphs, teal ring harbors with matching glyphs, jagged coral reef with diagonal hatch, broad tide arrow. Show one clear horizontal cyan dashed crease preview with arrowheads, dotted moving half, solid-wave stationary half, and ghosted projected rescue plus projected reef danger. Top bar shows simple icons and numerals for level, 2 boats, 3 creases, plus pause. Bottom uses one short instruction and no power-ups. Crisp readable cells, premium restrained papercraft, 2D not isometric, no characters, no coins, no shop, no hidden picture, no free-angle fold, no logos except the game title if needed. This is the sole gameplay master.
text/plain; charset=utf-8, 647 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/artifacts/image-prompts/home-atlas.txt
Create a standalone portrait 9:20 home screen matching the supplied Foldwake gameplay master. Source refs: SCR-HOME, ENV-ATLAS, ENV-STORM, UI-PRIMARY, UI-TOPBAR, A-TEXT. Show a stitched indigo nautical atlas with several restored compact cut-paper map pages, the title “FOLDWAKE” in a rounded humanist style, a large cream “CONTINUE” capsule in the lower thumb zone, a clean five-chapter page grid, and small settings and legal icons. Warm lantern highlights, coral and teal accents, generous safe area, premium quiet composition. No currency, daily reward, character, sale banner, energy, shop, chest, ad button, or visual-novel element.
text/plain; charset=utf-8, 664 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/artifacts/image-prompts/legal-error.txt
Create a standalone portrait 9:20 legal screen in a recoverable error state, matching the supplied Foldwake gameplay master. Source refs: SCR-LEGAL, ST-ERROR, UI-MODAL, UI-PRIMARY, A-TEXT. Behind, show a clean off-white legal paper page with heading “LEGAL & SUPPORT” and rows for Privacy, Terms, Credits, Licenses, Support, plus “Updated Aug 19, 2026”. Overlay a small folded-paper message: “Couldn’t refresh this page. Showing the saved copy.” Actions RETRY and DONE. Calm amber offline icon, no alarming red, no data loss claim, no account, no new mechanic, no store promotion. Preserve portrait safe areas and readable 17px-equivalent body type.
text/plain; charset=utf-8, 802 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/artifacts/image-prompts/onboarding-fresh.txt
Create a standalone portrait 9:20 onboarding reference matching the supplied Foldwake gameplay master. Source refs: SCR-ONBOARDING, ST-FRESH, M-FOLD, M-PREVIEW, E-BOAT, E-HARBOR, E-CREASE, ENV-CHART, UI-CREASE-RAIL, UI-PRIMARY, A-COLOR, A-MOTION, V-FOLD. Show only a calm two-cell cream-edged paper chart on indigo: one amber lantern boat with triangle glyph on the upper cell, one teal ring harbor with matching triangle glyph below, and a large cyan dashed crease with a ghost hand-arrow showing the one legal downward fold. Use one short readable instruction: “Fold the boat onto its harbor.” Include small Skip and accessibility icon, ample safe areas, no carousel, no extra entities, no rewards, no shop. Same cut-paper materials, palette, icon strokes, and orthographic camera as the master.
text/plain; charset=utf-8, 594 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/artifacts/image-prompts/pause-overlay.txt
Create a standalone portrait 9:20 pause overlay matching the supplied Foldwake gameplay master. Source refs: SCR-PAUSE, ST-PAUSED, ENV-CHART, UI-MODAL, UI-PRIMARY, A-MOTION. Keep the gameplay chart visible but dimmed and frozen behind a centered off-white folded-paper modal on a deep indigo scrim. Heading “PAUSED”; four clear actions: RESUME as cream primary, RESTART, SETTINGS, HOME. Use simple ink icons, 48px-equivalent targets, no obscure cells at the edges, no new mechanics, no store or ad. Same papercraft material, cyan focus ring, safe areas, and restrained style as the master.
text/plain; charset=utf-8, 597 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/artifacts/image-prompts/settings.txt
Create a standalone portrait 9:20 settings screen matching the supplied Foldwake gameplay master. Source refs: SCR-SETTINGS, UI-MODAL, UI-TOGGLE, A-HAPTIC, A-TEXT, ENV-STORM. An off-white stitched paper panel on indigo with heading “SETTINGS”. Clean 48px-equivalent rows for Music, Ambience, Effects, Haptics, each with icon, explicit ON/OFF label, and papercraft toggle. Rows for Accessibility, Replay Tutorial, Restore Purchase, Data Controls, Legal. Back button top left, no gameplay board, no account demand, no subscriptions or sales. Readable spacing, rounded humanist type, safe areas.
text/plain; charset=utf-8, 624 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/artifacts/image-prompts/success-result.txt
Create a standalone portrait 9:20 success result matching the supplied Foldwake gameplay master. Source refs: SCR-SUCCESS, ST-SUCCESS, E-BOAT, E-HARBOR, ENV-CHART, ENV-ATLAS, UI-PRIMARY, V-RESCUE, V-SUCCESS, A-COLOR. Show the final small folded chart with two completed harbor seals, rescued lanterns rising gently toward an atlas page, and a restrained mint and amber ring. Heading “ALL SAFE”; show 3 creases and three cosmetic stamp outlines, a large cream “NEXT CHART” button, smaller REPLAY and HOME. Clear outcome, premium paper, no confetti flood, coins, chest, multiplier, ad reward, streak, or store prompt.
text/markdown; charset=utf-8, 7621 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/docs/art-bible.md
Full text is reproduced above under Art Bible.
text/markdown; charset=utf-8, 15705 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/docs/gdd.md
Full text is reproduced above under Game design document.
text/markdown; charset=utf-8, 6360 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/docs/ux-flow.md
Full text is reproduced above under UX flow.
text/markdown; charset=utf-8, 5245 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/docs/visual-brief.md
Full text is reproduced above under Visual brief.
application/json, 2389 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/market/evidence-index.json
{
"version": 1,
"status": "indexed",
"evidence": [
{
"id": "apple-paper-fold-market",
"kind": "store-signal",
"truthLabel": "CONFIRMED",
"url": "https://apps.apple.com/us/app/paper-fold/id1558177980",
"retrievedAt": "2026-08-19T01:30:00.000Z",
"finding": "US listing showed 345K ratings at 4.6; reviews report relaxing appeal alongside repeated levels and heavy ads."
},
{
"id": "google-paper-fold-market",
"kind": "store-signal",
"truthLabel": "CONFIRMED",
"url": "https://play.google.com/store/apps/details?id=com.game.foldpuzzle",
"retrievedAt": "2026-08-19T01:30:00.000Z",
"finding": "Google Play displayed 100M+ downloads, 1.07M reviews, ads/IAP, offline availability, and a 4.5 rating."
},
{
"id": "apple-paper-trail-market",
"kind": "store-signal",
"truthLabel": "CONFIRMED",
"url": "https://apps.apple.com/us/app/paper-trail-netflix/id1668440872",
"retrievedAt": "2026-08-19T01:30:00.000Z",
"finding": "US listing showed 2.7K ratings at 4.8 for a foldable-world puzzle adventure requiring Netflix membership."
},
{
"id": "apple-foldcast-market",
"kind": "monetization-signal",
"truthLabel": "CONFIRMED",
"url": "https://apps.apple.com/us/app/foldcast-paper-folding-game/id6787431868",
"retrievedAt": "2026-08-19T01:30:00.000Z",
"finding": "Current listing describes offline/no-account play, three-day trial, and $1.99 one-time unlock, with too few ratings for traction inference."
},
{
"id": "google-paper-origami-market",
"kind": "competition-signal",
"truthLabel": "CONFIRMED",
"url": "https://play.google.com/store/apps/details?id=com.fun.paperfolding",
"retrievedAt": "2026-08-19T01:30:00.000Z",
"finding": "Google Play displayed 1M+ downloads, 14.2K reviews, ads/IAP, 120 puzzles, and a 4.4 rating for accuracy-based origami."
},
{
"id": "google-fold-it-market",
"kind": "competition-signal",
"truthLabel": "CONFIRMED",
"url": "https://play.google.com/store/apps/details?id=paper.folding.logic.puzzle",
"retrievedAt": "2026-08-19T01:30:00.000Z",
"finding": "Google Play displayed 1M+ downloads and 3.05K reviews for another one-finger fold-to-picture game, confirming crowded keyword competition."
}
]
}application/json, 14243 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/validation/asset-manifest.json
{
"version": 3,
"status": "complete",
"model": "gpt-image-2",
"lineage": {
"runId": "2026-08-foldwake-en-us",
"conceptId": "foldwake"
},
"authorship": {
"designBy": "Codex visual design operator"
},
"documents": {
"gdd": "gdd.md",
"uxFlow": "ux-flow.md",
"visualBrief": "visual-brief.md",
"artBible": "art-bible.md"
},
"boardSpec": "board-spec.json",
"sourceBindings": {
"gdd": {
"source": "02-gdd/gdd.md",
"snapshot": "gdd.md",
"sha256": "bde14d464bd5758ef493e48c99b9f51785bc9fefb00e6887269569718122f148"
},
"gddAudit": {
"source": "03-gdd-audit/audit.json",
"snapshot": "gdd-audit.json",
"sha256": "e5b2f23d72c530b582ab733458e70f7b1790c2de5fd2bcc2cda1039d21dce450"
},
"marketAnalysis": {
"source": "04-market-analysis/market-analysis.json",
"snapshot": "market-analysis.json",
"sha256": "1e6a7cfde416721b21ab6e930c2e4eff9cbae500ae2fd497fee62ad1926b849b"
},
"productDirection": {
"source": "05-product-direction/product-direction.json",
"snapshot": "product-direction.json",
"sha256": "15def4c376ba4129314b8ceea15d321a4cd941443c926b5ce0cebff3af0991e0"
},
"uxFlow": {
"source": "06-ux/ux-flow.md",
"snapshot": "ux-flow.md",
"sha256": "083bd64d41f664f3b164a8c7b21d8d4017e68b7ab7a76d88def7754f9095d304"
}
},
"inventory": {
"screens": [
{
"id": "SCR-ONBOARDING",
"role": "onboarding",
"sourceRefs": [
"SCR-ONBOARDING"
]
},
{
"id": "SCR-HOME",
"role": "home",
"sourceRefs": [
"SCR-HOME"
]
},
{
"id": "SCR-GAMEPLAY",
"role": "gameplay",
"sourceRefs": [
"SCR-GAMEPLAY"
]
},
{
"id": "SCR-PAUSE",
"role": "pause",
"sourceRefs": [
"SCR-PAUSE"
]
},
{
"id": "SCR-SUCCESS",
"role": "success",
"sourceRefs": [
"SCR-SUCCESS"
]
},
{
"id": "SCR-FAILURE",
"role": "failure",
"sourceRefs": [
"SCR-FAILURE"
]
},
{
"id": "SCR-SETTINGS",
"role": "settings",
"sourceRefs": [
"SCR-SETTINGS"
]
},
{
"id": "SCR-ACCESSIBILITY",
"role": "accessibility",
"sourceRefs": [
"SCR-ACCESSIBILITY"
]
},
{
"id": "SCR-LEGAL",
"role": "legal",
"sourceRefs": [
"SCR-LEGAL"
]
}
],
"states": [
{
"id": "ST-FRESH",
"role": "fresh",
"important": true,
"sourceRefs": [
"ST-FRESH"
]
},
{
"id": "ST-ACTIVE",
"role": "active",
"important": true,
"sourceRefs": [
"ST-ACTIVE"
]
},
{
"id": "ST-PAUSED",
"role": "paused",
"important": true,
"sourceRefs": [
"ST-PAUSED"
]
},
{
"id": "ST-SUCCESS",
"role": "success",
"important": true,
"sourceRefs": [
"ST-SUCCESS"
]
},
{
"id": "ST-FAILURE",
"role": "failure",
"important": true,
"sourceRefs": [
"ST-FAILURE"
]
},
{
"id": "ST-ERROR",
"role": "error",
"important": true,
"sourceRefs": [
"ST-ERROR"
]
}
],
"mechanics": [
{
"id": "M-FOLD",
"sourceRefs": [
"M-FOLD"
]
},
{
"id": "M-PREVIEW",
"sourceRefs": [
"M-PREVIEW"
]
},
{
"id": "M-RESOLVE",
"sourceRefs": [
"M-RESOLVE"
]
},
{
"id": "M-RETRY",
"sourceRefs": [
"M-RETRY"
]
}
],
"entities": [
{
"id": "E-BOAT",
"sourceRefs": [
"E-BOAT"
]
},
{
"id": "E-HARBOR",
"sourceRefs": [
"E-HARBOR"
]
},
{
"id": "E-REEF",
"sourceRefs": [
"E-REEF"
]
},
{
"id": "E-TIDE",
"sourceRefs": [
"E-TIDE"
]
},
{
"id": "E-CREASE",
"sourceRefs": [
"E-CREASE"
]
}
],
"environments": [
{
"id": "ENV-CHART",
"sourceRefs": [
"ENV-CHART"
]
},
{
"id": "ENV-STORM",
"sourceRefs": [
"ENV-STORM"
]
},
{
"id": "ENV-ATLAS",
"sourceRefs": [
"ENV-ATLAS"
]
}
],
"ui": [
{
"id": "UI-TOPBAR",
"sourceRefs": [
"UI-TOPBAR"
]
},
{
"id": "UI-CREASE-RAIL",
"sourceRefs": [
"UI-CREASE-RAIL"
]
},
{
"id": "UI-PRIMARY",
"sourceRefs": [
"UI-PRIMARY"
]
},
{
"id": "UI-MODAL",
"sourceRefs": [
"UI-MODAL"
]
},
{
"id": "UI-TOGGLE",
"sourceRefs": [
"UI-TOGGLE"
]
}
],
"accessibility": [
{
"id": "A-COLOR",
"sourceRefs": [
"A-COLOR"
]
},
{
"id": "A-MOTION",
"sourceRefs": [
"A-MOTION"
]
},
{
"id": "A-TEXT",
"sourceRefs": [
"A-TEXT"
]
},
{
"id": "A-HAPTIC",
"sourceRefs": [
"A-HAPTIC"
]
}
],
"vfx": [
{
"id": "V-FOLD",
"sourceRefs": [
"V-FOLD"
]
},
{
"id": "V-RESCUE",
"sourceRefs": [
"V-RESCUE"
]
},
{
"id": "V-WRECK",
"sourceRefs": [
"V-WRECK"
]
},
{
"id": "V-SUCCESS",
"sourceRefs": [
"V-SUCCESS"
]
}
]
},
"logicalLayouts": {
"portrait": {
"width": 360,
"height": 800,
"aspectRatio": "9:20"
},
"landscape": {
"width": 800,
"height": 360,
"aspectRatio": "20:9"
}
},
"supportedOrientations": [
"portrait"
],
"assets": [
{
"id": "ART-GAMEPLAY",
"master": true,
"standalone": true,
"orientation": "portrait",
"dimensions": {
"width": 360,
"height": 800
},
"prompt": "image-prompts/gameplay-active.txt",
"output": "art-bible/gameplay-active.png",
"references": [],
"sourceRefs": [
"SCR-GAMEPLAY",
"ST-ACTIVE",
"M-FOLD",
"M-PREVIEW",
"M-RESOLVE",
"M-RETRY",
"E-BOAT",
"E-HARBOR",
"E-REEF",
"E-TIDE",
"E-CREASE",
"ENV-CHART",
"ENV-STORM",
"UI-TOPBAR",
"UI-CREASE-RAIL",
"A-COLOR",
"V-FOLD"
],
"covers": {
"screens": [
"SCR-GAMEPLAY"
],
"states": [
"ST-ACTIVE"
],
"mechanics": [
"M-FOLD",
"M-PREVIEW",
"M-RESOLVE",
"M-RETRY"
],
"entities": [
"E-BOAT",
"E-HARBOR",
"E-REEF",
"E-TIDE",
"E-CREASE"
],
"environments": [
"ENV-CHART",
"ENV-STORM"
],
"ui": [
"UI-TOPBAR",
"UI-CREASE-RAIL"
],
"accessibility": [
"A-COLOR"
],
"vfx": [
"V-FOLD"
]
},
"provenance": {
"createdBy": "OpenAI gpt-image-2 via Codex",
"createdAt": "2026-08-19T01:45:00.000Z"
},
"machineQa": {
"status": "passed",
"checks": [
"valid PNG",
"360x800 portrait",
"master composition reviewed",
"no placeholder pixels"
]
}
},
{
"id": "ART-ONBOARDING",
"standalone": true,
"orientation": "portrait",
"dimensions": {
"width": 360,
"height": 800
},
"prompt": "image-prompts/onboarding-fresh.txt",
"output": "art-bible/onboarding-fresh.png",
"references": [
"art-bible/gameplay-active.png"
],
"sourceRefs": [
"SCR-ONBOARDING",
"ST-FRESH",
"M-FOLD",
"M-PREVIEW",
"E-BOAT",
"E-HARBOR",
"E-CREASE",
"ENV-CHART",
"UI-CREASE-RAIL",
"UI-PRIMARY",
"A-COLOR",
"A-MOTION",
"V-FOLD"
],
"covers": {
"screens": [
"SCR-ONBOARDING"
],
"states": [
"ST-FRESH"
],
"mechanics": [
"M-FOLD",
"M-PREVIEW"
],
"entities": [
"E-BOAT",
"E-HARBOR",
"E-CREASE"
],
"environments": [
"ENV-CHART"
],
"ui": [
"UI-CREASE-RAIL",
"UI-PRIMARY"
],
"accessibility": [
"A-COLOR",
"A-MOTION"
],
"vfx": [
"V-FOLD"
]
},
"provenance": {
"createdBy": "OpenAI gpt-image-2 via Codex",
"createdAt": "2026-08-19T01:48:00.000Z"
},
"machineQa": {
"status": "passed",
"checks": [
"valid PNG",
"360x800 portrait",
"single real fold taught",
"safe areas visible"
]
}
},
{
"id": "ART-HOME",
"standalone": true,
"orientation": "portrait",
"dimensions": {
"width": 360,
"height": 800
},
"prompt": "image-prompts/home-atlas.txt",
"output": "art-bible/home-atlas.png",
"references": [
"art-bible/gameplay-active.png"
],
"sourceRefs": [
"SCR-HOME",
"ENV-ATLAS",
"ENV-STORM",
"UI-PRIMARY",
"UI-TOPBAR",
"A-TEXT"
],
"covers": {
"screens": [
"SCR-HOME"
],
"states": [],
"mechanics": [],
"entities": [],
"environments": [
"ENV-ATLAS",
"ENV-STORM"
],
"ui": [
"UI-PRIMARY",
"UI-TOPBAR"
],
"accessibility": [
"A-TEXT"
],
"vfx": []
},
"provenance": {
"createdBy": "OpenAI gpt-image-2 via Codex",
"createdAt": "2026-08-19T01:50:00.000Z"
},
"machineQa": {
"status": "passed",
"checks": [
"valid PNG",
"360x800 portrait",
"five chapters visible",
"no economy UI"
]
}
},
{
"id": "ART-PAUSE",
"standalone": true,
"orientation": "portrait",
"dimensions": {
"width": 360,
"height": 800
},
"prompt": "image-prompts/pause-overlay.txt",
"output": "art-bible/pause-overlay.png",
"references": [
"art-bible/gameplay-active.png"
],
"sourceRefs": [
"SCR-PAUSE",
"ST-PAUSED",
"ENV-CHART",
"UI-MODAL",
"UI-PRIMARY",
"A-MOTION"
],
"covers": {
"screens": [
"SCR-PAUSE"
],
"states": [
"ST-PAUSED"
],
"mechanics": [],
"entities": [],
"environments": [
"ENV-CHART"
],
"ui": [
"UI-MODAL",
"UI-PRIMARY"
],
"accessibility": [
"A-MOTION"
],
"vfx": []
},
"provenance": {
"createdBy": "OpenAI gpt-image-2 via Codex",
"createdAt": "2026-08-19T01:52:00.000Z"
},
"machineQa": {
"status": "passed",
"checks": [
"valid PNG",
"360x800 portrait",
"frozen board context visible",
"four actions legible"
]
}
},
{
"id": "ART-SUCCESS",
"standalone": true,
"orientation": "portrait",
"dimensions": {
"width": 360,
"height": 800
},
"prompt": "image-prompts/success-result.txt",
"output": "art-bible/success-result.png",
"references": [
"art-bible/gameplay-active.png"
],
"sourceRefs": [
"SCR-SUCCESS",
"ST-SUCCESS",
"E-BOAT",
"E-HARBOR",
"ENV-CHART",
"ENV-ATLAS",
"UI-PRIMARY",
"V-RESCUE",
"V-SUCCESS",
"A-COLOR"
],
"covers": {
"screens": [
"SCR-SUCCESS"
],
"states": [
"ST-SUCCESS"
],
"mechanics": [],
"entities": [
"E-BOAT",
"E-HARBOR"
],
"environments": [
"ENV-CHART",
"ENV-ATLAS"
],
"ui": [
"UI-PRIMARY"
],
"accessibility": [
"A-COLOR"
],
"vfx": [
"V-RESCUE",
"V-SUCCESS"
]
},
"provenance": {
"createdBy": "OpenAI gpt-image-2 via Codex",
"createdAt": "2026-08-19T01:54:00.000Z"
},
"machineQa": {
"status": "passed",
"checks": [
"valid PNG",
"360x800 portrait",
"success explicit",
"no monetization prompt"
]
}
},
{
"id": "ART-FAILURE",
"standalone": true,
"orientation": "portrait",
"dimensions": {
"width": 360,
"height": 800
},
"prompt": "image-prompts/failure-result.txt",
"output": "art-bible/failure-result.png",
"references": [
"art-bible/gameplay-active.png"
],
"sourceRefs": [
"SCR-FAILURE",
"ST-FAILURE",
"E-BOAT",
"E-REEF",
"ENV-CHART",
"UI-MODAL",
"UI-PRIMARY",
"V-WRECK",
"A-COLOR",
"M-RETRY"
],
"covers": {
"screens": [
"SCR-FAILURE"
],
"states": [
"ST-FAILURE"
],
"mechanics": [
"M-RETRY"
],
"entities": [
"E-BOAT",
"E-REEF"
],
"environments": [
"ENV-CHART"
],
"ui": [
"UI-MODAL",
"UI-PRIMARY"
],
"accessibility": [
"A-COLOR"
],
"vfx": [
"V-WRECK"
]
},
"provenance": {
"createdBy": "OpenAI gpt-image-2 via Codex",
"createdAt": "2026-08-19T01:56:00.000Z"
},
"machineQa": {
"status": "passed",
"checks": [
"valid PNG",
"360x800 portrait",
"failure cause explicit",
"non-color hatch visible"
]
}
},
{
"id": "ART-SETTINGS",
"standalone": true,
"orientation": "portrait",
"dimensions": {
"width": 360,
"height": 800
},
"prompt": "image-prompts/settings.txt",
"output": "art-bible/settings.png",
"references": [
"art-bible/gameplay-active.png"
],
"sourceRefs": [
"SCR-SETTINGS",
"UI-MODAL",
"UI-TOGGLE",
"A-HAPTIC",
"A-TEXT",
"ENV-STORM"
],
"covers": {
"screens": [
"SCR-SETTINGS"
],
"states": [],
"mechanics": [],
"entities": [],
"environments": [
"ENV-STORM"
],
"ui": [
"UI-MODAL",
"UI-TOGGLE"
],
"accessibility": [
"A-HAPTIC",
"A-TEXT"
],
"vfx": []
},
"provenance": {
"createdBy": "OpenAI gpt-image-2 via Codex",
"createdAt": "2026-08-19T01:58:00.000Z"
},
"machineQa": {
"status": "passed",
"checks": [
"valid PNG",
"360x800 portrait",
"explicit toggle labels",
"all required routes visible"
]
}
},
{
"id": "ART-ACCESSIBILITY",
"standalone": true,
"orientation": "portrait",
"dimensions": {
"width": 360,
"height": 800
},
"prompt": "image-prompts/accessibility.txt",
"output": "art-bible/accessibility.png",
"references": [
"art-bible/gameplay-active.png"
],
"sourceRefs": [
"SCR-ACCESSIBILITY",
"A-COLOR",
"A-MOTION",
"A-TEXT",
"A-HAPTIC",
"UI-TOGGLE",
"E-BOAT",
"E-HARBOR",
"E-REEF",
"E-CREASE"
],
"covers": {
"screens": [
"SCR-ACCESSIBILITY"
],
"states": [],
"mechanics": [],
"entities": [
"E-BOAT",
"E-HARBOR",
"E-REEF",
"E-CREASE"
],
"environments": [],
"ui": [
"UI-TOGGLE"
],
"accessibility": [
"A-COLOR",
"A-MOTION",
"A-TEXT",
"A-HAPTIC"
],
"vfx": []
},
"provenance": {
"createdBy": "OpenAI gpt-image-2 via Codex",
"createdAt": "2026-08-19T02:00:00.000Z"
},
"machineQa": {
"status": "passed",
"checks": [
"valid PNG",
"360x800 portrait",
"symbol preview visible",
"values explicit"
]
}
},
{
"id": "ART-LEGAL-ERROR",
"standalone": true,
"orientation": "portrait",
"dimensions": {
"width": 360,
"height": 800
},
"prompt": "image-prompts/legal-error.txt",
"output": "art-bible/legal-error.png",
"references": [
"art-bible/gameplay-active.png"
],
"sourceRefs": [
"SCR-LEGAL",
"ST-ERROR",
"UI-MODAL",
"UI-PRIMARY",
"A-TEXT"
],
"covers": {
"screens": [
"SCR-LEGAL"
],
"states": [
"ST-ERROR"
],
"mechanics": [],
"entities": [],
"environments": [],
"ui": [
"UI-MODAL",
"UI-PRIMARY"
],
"accessibility": [
"A-TEXT"
],
"vfx": []
},
"provenance": {
"createdBy": "OpenAI gpt-image-2 via Codex",
"createdAt": "2026-08-19T02:04:00.000Z"
},
"machineQa": {
"status": "passed",
"checks": [
"valid PNG",
"360x800 portrait",
"gameplay HUD removed on revision",
"saved-copy recovery explicit"
]
}
}
],
"visualBoards": [
{
"id": "BOARD-VISUAL-BLUEPRINT",
"role": "generation-blueprint",
"output": "art-bible/visual-blueprint.png",
"dimensions": {
"width": 2048,
"height": 1152
},
"assetIds": [
"ART-GAMEPLAY"
],
"sourceRefs": [
"M-FOLD",
"M-PREVIEW",
"M-RESOLVE",
"E-BOAT",
"E-HARBOR",
"E-REEF",
"E-CREASE",
"UI-TOPBAR",
"A-COLOR",
"V-FOLD"
],
"provenance": {
"createdBy": "deterministic board compositor",
"createdAt": "2026-08-19T02:13:21.247Z"
},
"machineQa": {
"status": "passed",
"checks": [
"2048x1152 PNG",
"gameplay master included",
"exact board-spec text",
"source IDs visible"
]
}
},
{
"id": "BOARD-IMPLEMENTATION-OVERVIEW",
"role": "implementation-overview",
"output": "art-bible/implementation-board.png",
"dimensions": {
"width": 3840,
"height": 2160
},
"assetIds": [
"ART-GAMEPLAY",
"ART-ONBOARDING",
"ART-HOME",
"ART-PAUSE",
"ART-SUCCESS",
"ART-FAILURE",
"ART-SETTINGS",
"ART-ACCESSIBILITY",
"ART-LEGAL-ERROR"
],
"sourceRefs": [
"M-FOLD",
"M-PREVIEW",
"M-RESOLVE",
"M-RETRY",
"E-BOAT",
"E-HARBOR",
"E-REEF",
"E-TIDE",
"E-CREASE",
"UI-TOPBAR",
"UI-CREASE-RAIL",
"A-COLOR",
"A-MOTION",
"A-TEXT",
"A-HAPTIC",
"V-FOLD",
"V-RESCUE",
"V-WRECK",
"V-SUCCESS"
],
"provenance": {
"createdBy": "deterministic board compositor",
"createdAt": "2026-08-19T02:13:21.247Z"
},
"machineQa": {
"status": "passed",
"checks": [
"3840x2160 PNG",
"all nine manifest assets included",
"exact board-spec text",
"source IDs visible"
]
}
}
]
}application/json, 753 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/validation/machine-validation.json
{
"version": 1,
"validatorVersion": 3,
"status": "passed",
"packageHash": "743565e8c58d0b397a72960f528fed1d1e782cc8de5be2495e89fea70b29b8ff",
"validatedAt": "2026-08-19T02:27:10.012Z",
"checks": {
"manifestSchema": "passed",
"sourceBindings": "passed",
"writtenDesignSections": "passed",
"crossDocumentIds": "passed",
"inventoryCoverage": "passed",
"standaloneScreens": "passed",
"importantStates": "passed",
"pngIntegrity": "passed",
"exactDimensions": "passed",
"distinctImageBytes": "passed",
"singleGameplayMaster": "passed",
"boardSpecTraceability": "passed",
"generationBlueprint": "passed",
"implementationOverview": "passed",
"completeBoardAssetMembership": "passed"
}
}application/json, 1253 bytes · https://autechsolutions-game-factory.pages.dev/ideas/foldwake/files/validation/visual-qa.json
{
"version": 1,
"status": "pending",
"packageHash": "743565e8c58d0b397a72960f528fed1d1e782cc8de5be2495e89fea70b29b8ff",
"reviewedBy": null,
"reviewerRole": null,
"reviewedAt": null,
"checks": {},
"generatorSelfReview": {
"status": "passed-with-owner-review-required",
"reviewedBy": "Codex visual design operator",
"reviewedAt": "2026-08-19T02:20:00.000Z",
"checks": {
"nineDistinctFrames": "passed",
"screenAndStateCoverage": "passed",
"gddFidelity": "passed",
"grayscaleLegibility": "passed",
"portraitSafeAreas": "passed",
"noMonetizationOrNewMechanics": "passed",
"legalScreenHudContamination": "fixed-and-rechecked",
"exactPngDimensions": "passed",
"visualBlueprintLayout": "passed-after-overlap-fix",
"implementationBoardLayout": "passed-after-footer-spacing-fix"
},
"evidence": [
"art-bible/visual-blueprint.png",
"art-bible/implementation-board.png",
"art-bible/contact-sheet.png",
"C:/Users/haseeb/.codex/visualizations/2026/08/18/01a01515-76a6-7183-a849-4244e9488f7e/foldwake-art-bible-grayscale.png"
],
"note": "Generator self-review is advisory and cannot satisfy the independent owner Art Bible audit."
}
}