Brand and design · Hi-fi screens · S23 Complete · Complete

Data-binding map: S23 Complete · Complete

Data-binding map of Complete · Complete: every field to its source, and what each required state shows.

Generated by botgumi-design index from ../../screens.json. Edit that file, not this page.

Every field S23 shows and where it comes from.

Field Source (endpoint or local state) Format Fallback
eyebrow api GET /sessions/{session_id} kind · session.kind, settlement.replayed — —
eyebrow api POST /sessions/{session_id}/complete replayed
headline / subline api POST /sessions/{session_id}/complete headline · settlement.headline / subline (Accept-Language) — complete.headline.<verdict>
headline / subline api POST /sessions/{session_id}/complete subline
icon + rays api POST /sessions/{session_id}/complete comparison.verdict · settlement.comparison.verdict trophy only for improved —
before/after api POST /sessions/{session_id}/complete round1_overall · settlement.round1_overall / round2_overall, durations (CCR-9) count-up r1→r2 —
before/after api POST /sessions/{session_id}/complete round2_overall
session delta api POST /sessions/{session_id}/complete comparison.overall_delta · settlement.comparison.overall_delta, duration_delta_ms ±N, secs_delta —
session delta api POST /sessions/{session_id}/complete comparison.duration_delta_ms
lost points api POST /sessions/{session_id}/complete comparison.key_points_lost[] · comparison.key_points_lost[] (article language) warning banner hidden when empty
XP tile api POST /sessions/{session_id}/complete xp.awarded · settlement.xp.awarded count-up +N —
streak tile api POST /sessions/{session_id}/complete streak.current · settlement.streak.current, streak_incremented +1 only when incremented and not replayed —
streak tile api POST /sessions/{session_id}/complete streak_incremented
ability tile api POST /sessions/{session_id}/complete ability_after · ability_after − ability_before; ability_sample_count < 3 → "building baseline n/3" separate from session delta —
ability tile api POST /sessions/{session_id}/complete ability_sample_count
level card api POST /sessions/{session_id}/complete level_after.level · level_after.level / title (Accept-Language) / xp_into_level / xp_for_next; animation from level_before bar fill 900 ms —
level card api POST /sessions/{session_id}/complete level_after.title
level card api POST /sessions/{session_id}/complete level_after.xp_into_level
level card api POST /sessions/{session_id}/complete level_after.xp_for_next
level card api POST /sessions/{session_id}/complete level_before.level
XP lines api POST /sessions/{session_id}/complete xp.breakdown[] · xp.breakdown[] (CCR-10), missing improve shown struck through — —
cap / repeat notes api POST /sessions/{session_id}/complete xp.daily_cap_hit · xp.daily_cap_hit, xp.repeat_discount complete.xp.cap_hit / .repeat —
cap / repeat notes api POST /sessions/{session_id}/complete xp.repeat_discount
weekly quests api POST /sessions/{session_id}/complete weekly_quests.quests[] · settlement.weekly_quests.quests[] (titles Accept-Language) bars —
next focus api POST /sessions/{session_id}/complete next_suggestion.title · settlement.next_suggestion.title / instruction (Accept-Language) — —
next focus api POST /sessions/{session_id}/complete next_suggestion.instruction
level-up overlay api POST /sessions/{session_id}/complete level_after.level · level_after.level > level_before.level overlay —
achievement sheet api POST /sessions/{session_id}/complete achievements_unlocked[] · achievements_unlocked[] (Accept-Language), plan_day_completed sheet per item, queued —
achievement sheet api POST /sessions/{session_id}/complete plan_day_completed
replayed banner api POST /sessions/{session_id}/complete replayed · settlement.replayed, settled_at date + time —
replayed banner api POST /sessions/{session_id}/complete settled_at
session.attempts[round=1].duration_ms api GET /sessions/{session_id} attempts[].duration_ms · From the board's data-bind; no row in data-binding.md yet.
session.attempts[round=2].duration_ms api GET /sessions/{session_id} attempts[].duration_ms · From the board's data-bind; no row in data-binding.md yet.
settlement.ability_after (− ability_before) api POST /sessions/{session_id}/complete ability_after · From the board's data-bind; no row in data-binding.md yet.
settlement.ability_sample_count api POST /sessions/{session_id}/complete ability_sample_count · From the board's data-bind; no row in data-binding.md yet.
settlement.achievements_unlocked[0].description api POST /sessions/{session_id}/complete achievements_unlocked[].description · From the board's data-bind; no row in data-binding.md yet.
settlement.achievements_unlocked[0].title api POST /sessions/{session_id}/complete achievements_unlocked[].title · From the board's data-bind; no row in data-binding.md yet.
settlement.comparison.duration_delta_ms api POST /sessions/{session_id}/complete comparison.duration_delta_ms · From the board's data-bind; no row in data-binding.md yet.
settlement.comparison.key_points_lost[] (article language) api POST /sessions/{session_id}/complete comparison.key_points_lost[] · From the board's data-bind; no row in data-binding.md yet.
settlement.headline (Accept-Language) api POST /sessions/{session_id}/complete headline · From the board's data-bind; no row in data-binding.md yet.
settlement.level_after.level api POST /sessions/{session_id}/complete level_after.level · From the board's data-bind; no row in data-binding.md yet.
settlement.level_after.level + title api POST /sessions/{session_id}/complete level_after.level · From the board's data-bind; no row in data-binding.md yet.
settlement.level_after.level + title api POST /sessions/{session_id}/complete level_after.title
settlement.level_after.xp_into_level / xp_for_next api POST /sessions/{session_id}/complete level_after.xp_into_level · From the board's data-bind; no row in data-binding.md yet.
settlement.level_after.xp_into_level / xp_for_next api POST /sessions/{session_id}/complete level_after.xp_for_next
settlement.level_after.xp_total / xp_for_next api POST /sessions/{session_id}/complete level_after.xp_total · From the board's data-bind; no row in data-binding.md yet.
settlement.level_after.xp_total / xp_for_next api POST /sessions/{session_id}/complete level_after.xp_for_next
settlement.next_suggestion.instruction api POST /sessions/{session_id}/complete next_suggestion.instruction · From the board's data-bind; no row in data-binding.md yet.
settlement.plan_day_completed api POST /sessions/{session_id}/complete plan_day_completed · From the board's data-bind; no row in data-binding.md yet.
settlement.replayed + settled_at api POST /sessions/{session_id}/complete replayed · From the board's data-bind; no row in data-binding.md yet.
settlement.replayed + settled_at api POST /sessions/{session_id}/complete settled_at
settlement.round2_overall api POST /sessions/{session_id}/complete round2_overall · From the board's data-bind; no row in data-binding.md yet.
settlement.streak.current + streak_incremented api POST /sessions/{session_id}/complete streak.current · From the board's data-bind; no row in data-binding.md yet.
settlement.streak.current + streak_incremented api POST /sessions/{session_id}/complete streak_incremented
settlement.subline (Accept-Language) api POST /sessions/{session_id}/complete subline · From the board's data-bind; no row in data-binding.md yet.
settlement.weekly_quests.quests[0] api POST /sessions/{session_id}/complete weekly_quests.quests[] · From the board's data-bind; no row in data-binding.md yet.
settlement.weekly_quests.quests[1] api POST /sessions/{session_id}/complete weekly_quests.quests[] · From the board's data-bind; no row in data-binding.md yet.
settlement.weekly_quests.quests[2] api POST /sessions/{session_id}/complete weekly_quests.quests[] · From the board's data-bind; no row in data-binding.md yet.
settlement.xp.breakdown[0].type api POST /sessions/{session_id}/complete xp.breakdown[].type · From the board's data-bind; no row in data-binding.md yet.
settlement.xp.breakdown[0].xp api POST /sessions/{session_id}/complete xp.breakdown[].xp · From the board's data-bind; no row in data-binding.md yet.
settlement.xp.breakdown[1].type api POST /sessions/{session_id}/complete xp.breakdown[].type · From the board's data-bind; no row in data-binding.md yet.
settlement.xp.breakdown[1].xp api POST /sessions/{session_id}/complete xp.breakdown[].xp · From the board's data-bind; no row in data-binding.md yet.
settlement.xp.breakdown[2].type api POST /sessions/{session_id}/complete xp.breakdown[].type · From the board's data-bind; no row in data-binding.md yet.
settlement.xp.breakdown[2].xp api POST /sessions/{session_id}/complete xp.breakdown[].xp · From the board's data-bind; no row in data-binding.md yet.
settlement.xp.breakdown[3].type api POST /sessions/{session_id}/complete xp.breakdown[].type · From the board's data-bind; no row in data-binding.md yet.
settlement.xp.breakdown[3].xp api POST /sessions/{session_id}/complete xp.breakdown[].xp · From the board's data-bind; no row in data-binding.md yet.

Binds on the boards

The data-bind values across every state.

  • session.attempts[round=1].duration_ms
  • session.attempts[round=2].duration_ms
  • session.kind
  • settlement.ability_after (− ability_before)
  • settlement.ability_sample_count
  • settlement.achievements_unlocked[0].description
  • settlement.achievements_unlocked[0].title
  • settlement.comparison.duration_delta_ms
  • settlement.comparison.key_points_lost[] (article language)
  • settlement.comparison.overall_delta
  • settlement.headline (Accept-Language)
  • settlement.level_after.level
  • settlement.level_after.level + title
  • settlement.level_after.xp_into_level / xp_for_next
  • settlement.level_after.xp_total / xp_for_next
  • settlement.next_suggestion.instruction
  • settlement.next_suggestion.title
  • settlement.plan_day_completed
  • settlement.replayed + settled_at
  • settlement.round1_overall
  • settlement.round2_overall
  • settlement.streak.current + streak_incremented
  • settlement.subline (Accept-Language)
  • settlement.weekly_quests.quests[0]
  • settlement.weekly_quests.quests[1]
  • settlement.weekly_quests.quests[2]
  • settlement.xp.awarded
  • settlement.xp.breakdown[0].type
  • settlement.xp.breakdown[0].xp
  • settlement.xp.breakdown[1].type
  • settlement.xp.breakdown[1].xp
  • settlement.xp.breakdown[2].type
  • settlement.xp.breakdown[2].xp
  • settlement.xp.breakdown[3].type
  • settlement.xp.breakdown[3].xp

States

  • Loading: From states.md (Complete): skeleton blocks while /complete runs (idempotent; safe to retry)
  • Empty: From states.md (Complete): —
  • Error (retryable / not): From states.md (Complete): Retry (same Idempotency-Key) · fatal: 409 precondition → back to the feedback of the missing round
  • Offline: From states.md (Complete): queued; shows "will settle when online"