8.1 KiB
FG-2 Production Vertical Slice Contract
Revision:
fg2-production-vertical-slice-r1Status:FROZEN
Fixed Gameplay Authority
The slice consumes one valid P10.0 CTR-R1-01 Market 1 fixture and its real
Market, deployment, battle, result, recovery and Save-v6 services. It may adapt
events for presentation but may not change any generated offer, cost, route,
target, tick, damage, healing, casualty, reward, receipt, checksum or save
transition.
The success path uses the disclosed low-risk Market-1 route and the fixture's
automatic or player-confirmed order. Its generated waves are exactly
EN-R1-09 then EN-R1-08. Order reversal in this fixed Company is not a
declared outcome counterfactual: probe evidence shows both orders win.
The failure/recovery presentation fixture begins from a separately named, valid Save-v6 Market-1 snapshot with a wounded Company and a disclosed high-risk route. Real P10.0 battle and settlement authority must produce the defeat, permanent casualty, bounded recovery and unchanged board. No test or controller may overwrite a terminal result to manufacture presentation.
Canonical Runtime Boundary
New source belongs under runtime/campaign/, not a new phase-numbered product
simulator. The boundary has four responsibilities:
- adapt a versioned canonical state snapshot into view state;
- adapt authoritative gameplay events into stable presentation events;
- own input/navigation/presentation without owning gameplay mutation; and
- resolve visual/audio assets by stable gameplay and presentation IDs.
P10.0 remains the first adapter. Later P10.1-P10.3 adapters may join only after this slice proves the interface. Compatibility code may translate fields; it may not duplicate battle, settlement or persistence authority.
Pixel Presentation Contract
The latest workspace contract supersedes the old non-pixel production assumption. The retained Japanese fantasy direction becomes genuine pixel art:
- logical pixel scale is selected per viewport as the largest integer that leaves at least a 320x180 world window;
- reference 844x390 renders a 422x195 logical world at 2x nearest;
- 760x360 renders 380x180 at 2x; 1280x720 renders 320x180 at 4x;
- non-text layers use integer logical positions, nearest filtering, hard clusters and a bounded palette; and
- native engine text is overlaid after world scaling and is never baked into image assets.
High-resolution accepted images may control identity, silhouette, material or composition as references. Downscaling them, applying a pixelation filter or turning on nearest filtering does not create an accepted runtime asset.
Palette And Shape
- Ally: navy, cool steel, white cloth and controlled gold; upright shield/tool silhouettes and stable foot baselines.
- Scribe: violet/charcoal kite robe, bright chalk-wind tool and a readable front-to-rear line gesture. Sprout: low mineral plant silhouette with three numbered forward-growth stages. Neither threat relies on hue alone.
- World: cool green land, blue water channel, pale mineral structures, dark rupture and warm timber machinery.
- UI: black/ink edge, cool paper-white type, gold commit, cyan information, jade recovery and red plus shape/label for irreversible loss.
No beige parchment wall, dark dashboard, gradient wash, decorative particle haze, nested cards, tiny actors or full-screen effect may replace the world.
Layer Contract
The battle scene retains separate logical-grid layers:
- background sky, terraces and distant mills;
- midground channel, bridge, route machine and rupture;
- foreground lane, contact marks and route edge;
- allied and enemy actor layers with independent anchors;
- props and state markers;
- actor-local VFX and signed values;
- edge-docked native UI and text.
Market and result/recovery states reuse the same world layers and change physical props, actor arrangement and route markers instead of replacing the scene with generic panels.
Motion-State Table
| Entity/event | Anticipation | Contact/commit | Recovery/final | Maximum | Reduced/low-power |
|---|---|---|---|---|---|
| Aegis idle | 2-3 frame breathing/weight shift | none | exact baseline | 900 ms loop | static chosen idle plus blink notch |
| Company advance | lean and first step | route-center arrival | settle into ordered line | 500 ms | short dissolve to final positions |
| Aegis attack | weapon draw-back | one contact frame and actor-local trail | return behind shield | 420 ms | anticipation, impact notch, final pose |
| Aegis guard | shield lift | guarded target/mitigation notch | shield settle | 360 ms | static shield-up plus signed mitigation |
| Scribe entry | robe compressed against wind | route-line contact | planted draw stance | 520 ms | start/end displacement only |
| Scribe draw | chalk tool lift | dotted front-to-rear line commits | release and replant | 440 ms | line notch plus final pose |
| Sprout growth | low crystal bud | one numbered forward stage | planted next footprint | 500 ms | direct stage swap with number |
| Damage/mitigation | source-target line | signed value, 35-70 ms hit pause | fade at actor | 600 ms, four values | no shake/flash; outline and value remain |
| Fallen | loss forecast persists | zero-HP collapse | removed gap and returned item | 700 ms | immediate fallen silhouette then gap |
| Victory/recovery | last threat resolves | result seal and changed world prop | stable Market/recovery action | 900 ms | static state swap with text/value delta |
Animation manifests own rectangles, timing, loops, pivots and fallbacks. Detached VFX never share the body atlas. Every transient returns to rest and is capped under repeated automatic events.
Asset Contract
The bounded slice inventory is:
FG2-BG-WINDGLASS-01: editable logical-grid environment layers;FG2-ACTOR-PFB01-01: generated Aegis identity anchor and accepted motion;FG2-ENEMY-ENR109-01: Crosswind Scribe anchor and accepted motion;FG2-ENEMY-ENR108-01: Glassroot Sprout stages and accepted motion;FG2-UI-CHROME-01: edge rails, action plates, markers and icons;FG2-VFX-01: contact, guard, damage, casualty, victory and recovery set; andFG2-AUDIO-01: one music/ambience package plus bounded semantic cues.
Every asset record stores source type, reference ownership, provider/task when used, cost, raw/processed paths, deterministic command, dimensions, palette, pivot, hash, import, integration, runtime visibility and agent/human states.
Audio Event Map
| ID | Authoritative boundary | Priority | Required read |
|---|---|---|---|
FG2-SFX-COMMIT |
valid route/deployment commit | P2 | dry timber-metal lock |
FG2-SFX-FORECAST |
enemy attack telegraph begins | P1 | short mineral rise |
FG2-SFX-IMPACT |
damage event commits | P4 | restrained metal/body impact |
FG2-SFX-GUARD |
mitigation commits | P3 | shielded double-layer hit |
FG2-SFX-CASUALTY |
permanent Fallen state commits | P0 | low break plus air withdrawal |
FG2-SFX-VICTORY |
terminal victory commits | P2 | two-note resolved work signal |
FG2-SFX-RECOVERY |
bounded recovery commits | P2 | repaired mechanism latch |
FG2-AMB-WINDGLASS |
route scene active | P6 | wind, timber and mineral bed |
FG2-MUS-WINDGLASS |
route/battle state | P6 | sparse original route/battle loop |
Routine impact concurrency is six globally and once per source/material per 90 ms. Forecast, casualty and commits duck routine impacts. Mute and low-power change playback only, never event timing or result.
Evidence Boundary
The slice requires focused gameplay-preservation tests, adapter/event tests,
asset/audio validators, parsed mobile input, native-size normal-render states,
machine audio checks and one fixed recording. Agent inspection can close only
agent_visual_reviewed and machine_audio_checked.
The H5 checkpoint is review transport, not release evidence. Owner visual, motion, comprehension, fun and listening judgments remain open until the Owner reviews the exact H5/source. Device, packaging, signing, store and release are outside this contract.