Files
aetherbound-guild/docs/runtime/M52_CANDIDATE_LEDGER_COMPONENT_CONTRACT.md
T

1.5 KiB

M52 CandidateLedger Component Contract

ABGM52CandidateLedger is the second independently reviewable M52 module. It is a warm adventurer ledger, not a page controller: it receives candidate data and emits one action_requested signal.

Ownership tree

ABGM52CandidateLedger (Control)
├── LedgerShell
├── LedgerHeader
├── PortraitModule
├── IdentityModule
├── FactCopy
├── TraitModule
├── CostModule
└── ActionButton

Layout rules

  • The shell and action use shared market chrome; the page must not add a second panel or a second button style around this component.
  • Portrait, name, trait and cost remain independent clipped modules. Text is engine-rendered and never baked into generated art.
  • The fact copy is limited to profession plus one short detail sentence; long descriptions belong to a later full-screen detail state.
  • The action occupies one bottom dock with a 48px minimum hit target.

Responsive rules

The parent supplies a normalized slot. The ledger background may stretch, while portrait and icon content preserve aspect ratio. All dynamic labels clip or wrap inside their local bounds; no label may paint over the neighboring slot.

Acceptance

  • m52_candidate_ledger_component_test.gd verifies the tree, clipping and non-overlapping slots.
  • m52_candidate_ledger_component_capture.gd produces a 420x560 normal-render evidence image.
  • Owner visual review is required before Market integration.