Record Owner acceptance for the normal 100% Risk Commitment Runtime, close the RSK-002 page package, and open the bounded BAT-001 specification step.
203 lines
8.7 KiB
JSON
203 lines
8.7 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"page_id": "RSK-002",
|
|
"version": "v001",
|
|
"state": "COMPLETE",
|
|
"mode": "contained 16:9 coordinate master plus engine-owned party, facts and commitment actions",
|
|
"coordinate_master": {
|
|
"width": 2048,
|
|
"height": 1152,
|
|
"aspect": "16:9",
|
|
"policy": "contain the authored canvas; aspect-cover only the painted world outside the contained canvas"
|
|
},
|
|
"stopping_point": "Review one sourced risk against the frozen four-member Party snapshot, confirm once and hand one idempotent commitment receipt to BAT-001; do not simulate battle on this page.",
|
|
"layers": [
|
|
{
|
|
"id": "painted_world",
|
|
"asset": "res://assets/entry/rsk_002_risk_commitment/risk-commitment-static-master.png",
|
|
"source": "../reconstruction/v001/asset-manifest.json#assets.clean_static_master",
|
|
"owner": "static_art",
|
|
"z": 0,
|
|
"bounds": [0.0, 0.0, 1.0, 1.0],
|
|
"layout": "full contained 16:9 coordinate canvas"
|
|
},
|
|
{
|
|
"id": "flags_and_overlook_props",
|
|
"asset": "res://assets/entry/rsk_002_risk_commitment/risk-commitment-static-master.png",
|
|
"owner": "static_art",
|
|
"z": 10,
|
|
"bounds": [0.0, 0.0, 1.0, 0.68],
|
|
"layout": "painted world props remain behind all runtime entities"
|
|
},
|
|
{
|
|
"id": "selected_risk_relic",
|
|
"asset": "res://assets/entry/rsk_002_risk_commitment/risk-commitment-static-master.png",
|
|
"owner": "static_art_plus_engine_slots",
|
|
"z": 20,
|
|
"bounds": [0.055, 0.055, 0.36, 0.585],
|
|
"layout": "single selected-risk surface; Engine fills identity, region, icon and sourced values"
|
|
},
|
|
{
|
|
"id": "party_arc",
|
|
"asset": "res://assets/entry/rsk_002_risk_commitment/risk-commitment-static-master.png",
|
|
"owner": "static_art",
|
|
"z": 25,
|
|
"bounds": [0.46, 0.55, 0.49, 0.13],
|
|
"layout": "field-attached connector remains continuous under the four actors"
|
|
},
|
|
{
|
|
"id": "frozen_four_party",
|
|
"asset": "res://assets/entry/recruit_stickers/pf_b01-512.png through pf_b12-512.png",
|
|
"owner": "runtime_recruit_entities",
|
|
"source": "PTY-002 accepted Party snapshot",
|
|
"z": 30,
|
|
"bounds": [0.48, 0.25, 0.47, 0.43],
|
|
"count": 4,
|
|
"order": "rear_left_to_front_right",
|
|
"layout": "preserve complete silhouettes and position 0 front exposure"
|
|
},
|
|
{
|
|
"id": "party_fact_markers",
|
|
"asset": null,
|
|
"owner": "engine_state_overlay",
|
|
"z": 40,
|
|
"bounds": [0.47, 0.31, 0.49, 0.22],
|
|
"count": 4,
|
|
"layout": "semantic coverage markers attach to the frozen actor slots"
|
|
},
|
|
{
|
|
"id": "consequence_band_shell",
|
|
"asset": "res://assets/entry/rsk_002_risk_commitment/risk-commitment-static-master.png",
|
|
"owner": "static_art",
|
|
"z": 50,
|
|
"bounds": [0.075, 0.65, 0.85, 0.145],
|
|
"layout": "physical ledger shell; center-only stretch"
|
|
},
|
|
{
|
|
"id": "consequence_facts",
|
|
"asset": null,
|
|
"owner": "FormationRiskService_and_company_store",
|
|
"z": 55,
|
|
"bounds": [0.09, 0.675, 0.82, 0.105],
|
|
"count": 6,
|
|
"layout": "fixed read order: threat, uncertainty, entry Coin, reward, recovery, retreat"
|
|
},
|
|
{
|
|
"id": "commitment_rail_shell",
|
|
"asset": "res://assets/entry/rsk_002_risk_commitment/risk-commitment-static-master.png",
|
|
"owner": "static_art",
|
|
"z": 60,
|
|
"bounds": [0.0, 0.805, 1.0, 0.195],
|
|
"layout": "field-attached command rail; center-only stretch"
|
|
},
|
|
{
|
|
"id": "commitment_actions",
|
|
"asset": null,
|
|
"owner": "engine_state_and_receipt_service",
|
|
"z": 70,
|
|
"bounds": [0.03, 0.83, 0.94, 0.15],
|
|
"layout": "Cancel, confirmation acknowledgement and Begin Battle slots"
|
|
},
|
|
{
|
|
"id": "settings_slot",
|
|
"asset": null,
|
|
"owner": "engine_action_overlay",
|
|
"z": 75,
|
|
"bounds": [0.90, 0.0, 0.10, 0.14],
|
|
"layout": "utility command remains outside the commitment rail"
|
|
}
|
|
],
|
|
"dynamic_bindings": [
|
|
"selected risk ID, source version, threat and region from RSK-001",
|
|
"same four Recruit IDs, names, professions, order, position 0 exposure and snapshot version from PTY-002",
|
|
"party coverage facts and semantic markers from the accepted Party snapshot",
|
|
"known threat, uncertainty band, entry Coin cost, current Coin balance, reward class, recovery exposure and retreat implication from FormationRiskService",
|
|
"localized labels, values, reasons, confirmation summary, disabled state and receipt copy from Engine text slots",
|
|
"loading, stale dependency, insufficient Coin, invalid option and interrupted resume reasons from the owning service"
|
|
],
|
|
"state_bindings": {
|
|
"loading": {
|
|
"visible": ["selected_risk_skeleton", "frozen_party_skeleton", "consequence_skeleton", "begin_battle_skeleton"],
|
|
"input": "locked"
|
|
},
|
|
"commitment_summary": {
|
|
"primary": "review_consequences",
|
|
"secondary": ["cancel_to_risk_board", "settings"],
|
|
"guard": "selected risk and exact four-member Party snapshot validate before rendering facts"
|
|
},
|
|
"consequence_review": {
|
|
"primary": "continue_to_confirmation",
|
|
"secondary": ["cancel_to_risk_board", "back_to_summary", "settings"],
|
|
"guard": "all six sourced consequence facts and current Coin balance are readable"
|
|
},
|
|
"ready_to_commit": {
|
|
"primary": "confirm_begin_battle",
|
|
"secondary": ["cancel_to_risk_board", "back_to_consequences", "settings"],
|
|
"guard": "selected risk, Party snapshot, Coin balance and ruleset hashes are valid and acknowledgement is explicit"
|
|
},
|
|
"committing": {
|
|
"input": "locked",
|
|
"visible": ["commit_progress", "dependency_validation", "no_duplicate_submission"]
|
|
},
|
|
"commitment_receipt": {
|
|
"primary": "open_battle_opening",
|
|
"secondary": ["review_receipt"],
|
|
"guard": "return the original receipt for duplicate operation input"
|
|
},
|
|
"stale_dependency": {
|
|
"primary": "reload_risk_board",
|
|
"secondary": ["return_to_party_line", "safe_exit"]
|
|
},
|
|
"insufficient_coin": {
|
|
"primary": "return_to_risk_board",
|
|
"secondary": ["return_to_guild", "safe_exit"]
|
|
},
|
|
"invalid_option": {
|
|
"primary": "reload_risk_board",
|
|
"secondary": ["return_to_readiness", "safe_exit"]
|
|
},
|
|
"interrupted_resume": {
|
|
"primary": "resume_commitment_review",
|
|
"secondary": ["discard_review", "safe_exit"],
|
|
"guard": "revalidate the same risk ID, four IDs, order, snapshot version and no-partial-spend invariant"
|
|
},
|
|
"commit_receipt_exists": {
|
|
"primary": "open_battle_opening",
|
|
"secondary": ["review_receipt", "return_to_risk_board"],
|
|
"guard": "idempotent operation key returns the original receipt without another spend"
|
|
}
|
|
},
|
|
"responsive": {
|
|
"canvas": "contained_16_9",
|
|
"viewports": ["760x360", "844x390", "1280x720"],
|
|
"locales": ["zh_CN", "en"],
|
|
"blocking_text_scales": [100],
|
|
"narrow_behavior": "Keep the complete relic, four actor silhouettes and bottom rail in the first viewport; linearize the consequence band without hiding Coin cost or recovery consequence.",
|
|
"wide_behavior": "Center the contained canvas and preserve authored art proportions; side space is inert."
|
|
},
|
|
"input": {
|
|
"modes": ["touch", "keyboard_focus", "controller_focus"],
|
|
"minimum_target_logical_px": 48,
|
|
"hit_areas": "hit-areas.json",
|
|
"focus_order": ["settings", "selected_risk_details", "consequence_band", "confirmation_acknowledgement", "begin_battle", "cancel_to_risk_board"]
|
|
},
|
|
"ownership_rules": [
|
|
"The approved and cleaned images establish composition and painted materials only.",
|
|
"Engine owns every label, value, localized reason, selection, disabled state, confirmation state and receipt.",
|
|
"Recruit textures are runtime entities bound to the accepted PTY-002 snapshot and are never baked authority.",
|
|
"Transparent hit areas remain independent from visible art bounds and may be larger than icon art.",
|
|
"No second card, frame, rail or icon background may be drawn over a region already owned by the static master."
|
|
],
|
|
"references": {
|
|
"page_contract": "../page-contract.json",
|
|
"state_matrix": "../state-matrix.json",
|
|
"approved_layer_map": "../approved/v001/layer-map.json",
|
|
"approved_text_slots": "../approved/v001/text-slots.json",
|
|
"approved_hit_areas": "../approved/v001/hit-areas.json",
|
|
"asset_manifest": "asset-manifest.json",
|
|
"runtime_hit_areas": "hit-areas.json",
|
|
"functional_provenance": "runtime/entry/entry_shell.gd show_risk_commitment; visual authority remains this package"
|
|
},
|
|
"implementation_gate": "Godot implementation is active for this page. The page stops at one idempotent commitment receipt and BAT-001 handoff; battle simulation, result/recovery UI, packaging and release remain outside this step."
|
|
}
|